java容器分为两大接口,Collection和Map
Collection下有子接口list和set,即list继承了Collection里的方法
list接口的实现类包括ArrayList,LinkedList,Vector
ArrayList特性:
- 动态增长
- 索引号存取
- 非同步(unsynchronized),多线程并发不安全,是异步的
- 查询高效:索引快速查询
- 插入删除低效:影响该索引后的每个元素
Vector特性:
- 与ArrayList高度相似
- 线程安全,其方法被synchronized修饰,是同步的
- 自动增长:容量不够时自动扩容,增加原来容量的一倍,而ArrayList则为一半
LinkedList特性:
- 以双向链表形式存取
- 不支持多线程并发访问
- 查询低效:每次查询从首地址或最后开始按顺序查询
- 插入删除高效
List接口方法:
- add(int index):插入元素到指定位置
- addaAll(Collection c):将另一个集合的元素全部插入到本集合
- ListTterator listIterator():返回一个ListIterator
- get(int index):查找指定位置元素对象并返回
- remove(int index || obj):删除指定位置或指定元素
- set(int index , obj):用对象obj替换指定位置的对象
- size():返回集合中的元素个数
- indexOf(obj):返回指定对象的位置
- lastIndexOf(obj):返回最后一个匹配到指定对象的位置
用法:
//创建:
List list = new ArrayList(); //父类引用创建子类对象
//插入
String s1 = "Hello";
String s2 = "World":
String s3 = "!";
list.add(s1);
list.add(s2);
list.add(s3):
//删除
list.remove(s3);
//替换
list.set(0 , "Hi");
//遍历
for( int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}