Arraylist的遍历方式java反射机制

Posted huangting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
}

 

谢谢观看!

 

以上是关于Arraylist的遍历方式java反射机制的主要内容,如果未能解决你的问题,请参考以下文章

Java常见集合的默认大小及扩容机制

Java基础:反射中Class类对象的创建方式

Java--反射机制原理几种Class获取方式及应用场景

Google Guava 反射机制工具类

场景应用:利用反射机制在这个泛型为Integer的ArrayList中存放一个String类?

Java反射机制详解