package com.zking.j2ee;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Temp {
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");
// arr.add("f");
// arr.add("g");
// arr.add("h");
// System.out.println(arr.size());
// System.out.println("--------下标输出方式");
// //下标输出方式
// for (int i = 0; i < arr.size(); i++) {
// System.out.println(arr.get(i));
// }
// System.out.println("--------foreach输出(>=jdk1.5)");
// //foreach输出(>=jdk1.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("--------迭代器");
// //迭代器
// 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);
}
}