一.Collection
1.语法
Collection collection = new ArrayList();
2.添加 add
collection.add(s1);
collection.add("西瓜");
collection.add("苹果");
collection.add("榴莲");
3.删除 remove
collection.remove("榴莲");
清空
collection.clear();
4.遍历
4.1使用增强for
for (Object object:collection) {
System.out.println(object);
}
4.2使用迭代器
Iterator hasNext();有没有下个元素
next();获取下个元素
remove();删除当前元素
Iterator iterator = collection.iterator();
while (iterator.hasNext()){
String s = (String) iterator.next();
System.out.println(s);
}
5.判断是否包含
System.out.println(collection.contains("西瓜"));
二.ArrayList
TODO 定义List是因为实现接口子类很多,不是光有一个ArrayList,LinkedList
区别:一个是数组(底层数组 ArrayList)
一个是双向链表(LinkedList)
各自好处:
ArrayList,查询快,遍历效率高,但是删除慢,添加(指中间或者头部慢)
LinkedList,查询慢,删除快,添加快
Vector 出来的比较早,一般不用,这个线程安全,其他没啥优势,几乎不用
根据业务需求来定,一般用ArrayList
ArrayList的特点:有序、有下标,元素可重复
DEFAULT_CAPACITY = 10 默认容量
elementData 用于存放元素的数组
size 实际的元素个数
当没有添加元素时,容量为0;
当添加了一个元素时,容量变为10;
当元素超过10时,每次的扩容大小为原来的1.5倍
1.语法
ArrayList list = new ArrayList();
2.通过下标获得想要的对象
System.out.println(list.get(0));
3.获取指定位置的对象
List list1 = list.subList(0,2);