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