zoukankan      html  css  js  c++  java
  • Arraylist的遍历方式、java反射机制

      先定义ArrayList再添加几条数据:

           

    ArrayList arr=new ArrayList();
        //往arrList中增加几条数据
        arr.add(1);
        arr.add(2);
        arr.add(3);
        arr.add(4);
        arr.add(5);
        arr.add(6);

          下标输出方式:

    //下标输出方式 for循环
        for (int i = 0; i < arr.size(); i++) {
            //得到对象i中的值
            System.out.println(arr.get(i));
        }

       foreach的方式输出集合中的值:

    for (Object o : arr) {
            System.out.println(o);
        }

          语法糖(Syntactic Sugar)的方式输出(需要在jdk1.8以上):

               //jdk.1.8语法糖的方式输出
            arr.forEach(x->System.out.println(x));

      迭代器的方式:

    //迭代器方式
        Iterator iterator=arr.iterator();
        //while循环输出
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        

      双向迭代器方式(注意:一定要先向下在向上读取,不然会出现向下读取不到数据的情况!):

    ListIterator list =arr.listIterator();
        //向下读取
        while (list.hasNext()) {
            System.out.println(list.next());
        }
        //向上读取
        while (list.hasPrevious()) {
            System.out.println(list.previous());
        }

      java反射机制:

    //向下取整
        //ArrayList默认的长度是10 当长度为10的时候,增长因子数位0.5倍,向下取整数
        for (int i = 0; i <20; i++) {
            print(arr); //调用的一个静态方法
            arr.add(i);//然后再添加循环对象
        }
    }
    static void print(ArrayList args) throws Exception{
        Class class1=args.getClass();
        Field elementData =class1.getDeclaredField("elementData");
        elementData.setAccessible(true);
        Object[] objects=(Object[]) elementData.get(args);
        System.out.println(objects.length);
    }

    谢谢观看!

  • 相关阅读:
    【转】有助于事业发展和幸福感提升的四个约定
    python命名空间的本质
    递归函数的定义和几个小例子
    全局变量与局部变量的使用问题
    计算机网络基础知识
    网络编程的基本概念,TCP/IP协议简介
    开博 第一篇
    Java8新特性之Stream
    深入理解HashMap(原理,查找,扩容)
    SQL优化|Java面试题
  • 原文地址:https://www.cnblogs.com/huangting/p/10893465.html
Copyright © 2011-2022 走看看