zoukankan      html  css  js  c++  java
  • ArrayList 集合的几种遍历的方法

    ArrayList 集合  也可称作动态数组(长度可变),在新建的时候是没有默认长度的,在新增数据长度小于10的时候,ArrayList 的长度会自动设置为10

     //了解更多可以按住Ctrl 再点击你需要查看的方法或者类名,  查看List源代码,ArrayList源代码

    public static void main(String[] args) throws Exception {
      Arraylist    新增数据时长度是10   当长度为10的时候 增长是如何增长的?
      增长因子数位0.5倍,向下取整数。
      ArrayList arr= new ArrayList();
      arr.add("a");//给集合赋值
      arr.add("b");
      arr.add("c");
      arr.add("d");
      arr.add("e");
      System.out.println(arr.size());    //ArrayList 集合可以有重复对象
      System.out.println("-------下标输出方式");
      //下标输出方式
      for(int i=0;i<arr.size();i++) {
       System.out.println(arr.get(i));
      }
      System.out.println("-------foreach输出(jdk>1.5)");
      //foreach输出(jdk>=1.5)
      for(Object o:arr) {
       System.out.println(o);
      }
      System.out.println("-------jdk1.8的语法糖");
      //jdk1.8语法糖
      arr.forEach(x->System.out.println(x));
      System.out.println("-------jdk1.8的迭代器");
      //迭代器
      Iterator it=arr.iterator();
      while(it.hasNext()) {
       System.out.println(it.next());
      }
      
      ArrayList arr= new ArrayList();
      for(int i=0;i<20;i++) {
       print(arr);
       arr.add(i);
      }

    //反向输出必须是先正向输出再反向输出。否则只会有正向没有反向输出
      ArrayList arr= new ArrayList(5);
      arr.add("a");
      arr.add("b");
      arr.add("c");
      arr.add("d");
      arr.add("e");
      ListIterator list=arr.listIterator();
      System.out.println("----------------下");
      while(list.hasNext()) {
       System.out.println(list.next());
      }
      System.out.println("----------------上");
      while(list.hasPrevious()) {
       System.out.println(list.previous());
      }
      
      //栈  可以比喻成一个车厢  最大的容量  3M
      //堆  可以比喻成一个火车  将内存中的零散的空间组成的一张链式表格
      //实现自定义的栈  mystack


     }

     //使用反射查看属性
     static void print(ArrayList   arraylist) throws Exception {
      Class c=arraylist.getClass();
      Field  elementData = c.getDeclaredField("elementData");
      elementData.setAccessible(true);
      Object[] objects=(Object[]) elementData.get(arraylist);
      System.out.println(objects.length);
     }


     

  • 相关阅读:
    分离的思想结合单链表实现级联组件:CascadeView
    对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache
    分离与继承的思想实现图片上传后的预览功能:ImageUploadView
    jquery技巧之让任何组件都支持类似DOM的事件管理
    jquery的事件命名空间详解
    多步骤多分步的组件StepJump
    基于sticky组件,实现带sticky效果的tab导航和滚动导航
    sticky组件的改进实现
    从前端性能优化的角度提高自己的博客的访问速度
    ionic serve 突然报错 node-sass
  • 原文地址:https://www.cnblogs.com/ly-0919/p/10885777.html
Copyright © 2011-2022 走看看