1.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(a->System.out.println(a));
System.out.println("--------------------迭代器");
// //迭代器
Iterator it = arr.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
ArrayList arr = new ArrayList(5);
for (int i = 0; i < 30; 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());
}
}
2.List反射查看
查看List源代码,ArrayList源代码
使用反射查看属性:
static void print(List arrayList) throws Exception {
Class c = arrayList.getClass();
Field elementDataField = c.getDeclaredField(“elementData”);
elementDataField.setAccessible(true);
Object[] arr = (Object[]) elementDataField.get(arrayList);
System.out.println(“elementData.length=” + arr.length);
}
3.List内的值删除
/* 逆向循环遍历删除 /
for(int n=list.size()-1;n>=0;n–) {
list.remove(n);
}
/ 迭代器删除 */
Iterator lis=list.iterator();
while(lis.hasNext()) {
lis.next();//移动到下下个
lis.remove();
}