码迷,mamicode.com
首页 > 其他好文 > 详细

ArrayList 集合的几种遍历的方法

时间:2019-05-18 15:33:38      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:jdk   data   迭代器   ring   输出   动态数组   方式   sys   add   

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

 

 

 


 

ArrayList 集合的几种遍历的方法

标签:jdk   data   迭代器   ring   输出   动态数组   方式   sys   add   

原文地址:https://www.cnblogs.com/ly-0919/p/10885777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!