• 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);
    }

    谢谢观看!

  • 相关阅读:
    富数据控件 DetailsView 和 FormView
    富数据控件 LstView(模版、分组)
    ADO.NET 基础(事务、通用的数据工厂)
    文件和流(使用流读写文件)
    ASP.NET 状态管理(Application)
    根据定制的 XML 文件进行随机抽取节
    缓存(缓存依赖)
    文件浏览器
    ASP.NET 状态管理(cookie、Session)
    使用HtmlControl动态创建一个表格
  • 原文地址:https://www.cnblogs.com/huangting/p/10893465.html
Copyright © 2020-2023  润新知