/**
* ArrayList的输出方式
*/
ArrayList arr = new ArrayList();
arr.add("a");
arr.add("b");
arr.add("c");
arr.add("d");
arr.add("e");
arr.add("f");
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输出方式(》=jbk1.5)");
// foreach输出方式(》=jbk1.5)
for (Object o : arr) {
System.out.println(o);
}
System.out.println("__________________________jbk1.8语法糖");
// jbk1.8语法糖
arr.forEach(x -> System.out.println(x));
System.out.println("__________________________迭代器");
// 迭代器
Iterator it = arr.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
/**
* ArrayList 默认的长度是10 ,当长度为10的时候,增长因子数为0.5倍,向下取整(意思是比如:30.5 取整为:30),而不是向上
*/
//mai方法内
ArrayList arr = new ArrayList();
for (int i = 0; i < 20; i++) {
print(arr);
arr.add(i);
}
//mai方法外
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);
}