- 常用方法
remove(index i);// 删除第i个元素
ps:删除第i个元素,第i+1个元素会向前移动,变成第i个元素,如果还有第i+1个元素。
remove(Object obj);// 删除集合中第一次出现的元素
比较两个元素是否一致调用Object 的equals方法,一致则删除返回true,找不到一致的元素返回false;
add(Object obj);//向集合中添加元素
List集合是有序集合,所以可以存放多个相同元素。 自动扩容机制
ArrayList默认分配10个长度的容量,1.7之前动态扩容1.5倍+1,1.7之后动态扩容1.5倍。
在自动扩容之后,集合中还有很多空余空间,可以调用trimToSize()方法去掉空余空间,节省内存。
在集合初始化的时候如果不知道要添加元素的个数,可以通过ensureCapacity(int size);注意事项
在使用迭代器遍历ArrayList的过程中 ,绝对不允许对集合整体进行任何添加删除操作。可以使用迭代器的remove()方法,删除当前所指向的元素。
5.0之前 必须使用迭代器的remove方法删除
5.0之后 可以使用CopOnWriteArrayList
练习题:
1.
List<Integer>`list = new ArrayList<>();
Integer int1 = new Integer(1);
Integer int2 = new Integer(2);
list.add(int1);
System.out.println(list.size());
list.remove(int2);
System.out.println(list.size());
2
List<String>`list = new ArrayList<>();
String str1 = new String("tom");
String str2 = new String("tom");
list.add(str1);
System.out.println(list.size());
list.remove(str2);
System.out.println(list.size());