arrayList集合的读取方式
package com.temp; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; public class Test { public static void main(String[] args) throws Exception { ArrayList arr = new ArrayList(); // 插入数据 for (int i = 0; i < 10; i++) { arr.add(i); } // 下标输出方式 for (int i = 0; i < arr.size(); i++) { System.out.println(arr.get(i)); } // foreach输出方式 for (Object o : arr) { System.out.println(o); } // jdk1.8语法糖 arr.forEach(a -> System.out.println(a)); // 迭代器 Iterator it = arr.iterator(); while (it.hasNext()) { System.out.println(it.next()); } ListIterator list = arr.listIterator(); // 向上读取 while (list.hasNext()) { System.out.println(list.next()); } // 向下读取 while (list.hasPrevious()) { System.out.println(list.previous()); } // 向上取整(要先向下读取才能向上读取) ArrayList myarr = new ArrayList(); for (int i = 0; i < 20; i++) { print(myarr); myarr.add(i); } } static void print(ArrayList arraylist) throws Exception { // TODO Auto-generated method stub Class c = arraylist.getClass(); Field elementData = c.getDeclaredField("elementData"); elementData.setAccessible(true); Object[] objects = (Object[]) elementData.get(arraylist); System.out.println(objects.length); } }
原文:https://www.cnblogs.com/huxiaocong/p/10892065.html