集合类的由来:
对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定。就使用集合容器进行存储。
集合特点:
1.用于存储对象的容器
2.集合的长度可变
3.集合中不可以存储基本数据类型。(与数组的区别)
集合容器因为内部数据结构不同,有多种具体容器。
不断向上抽取,就形成了集合框架。
框架的顶层Collection接口:
Collection的常见方法:
1.添加
boolean add(E e)
确保此 collection 包含指定的元素(可选操作)。
boolean addAll(Collection<? extends E> c)
将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。 A∪B
2.删除
boolean remove(Object o)
从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
boolean removeAll(Collection<?> c)
移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。 A-A∩B
void clear()
移除此 collection 中的所有元素(可选操作)。
3.判断
boolean contains(Object o)
如果此 collection 包含指定的元素,则返回 true。
boolean containsAll(Coll ection<?> c)
如果此 collection 包含指定 collection 中的所有元素,则返回 true。
boolean isEmpty()
如果此 collection 不包含元素,则返回 true。
4.获取
int size()
返回此 collection 中的元素数。
Iterator<E> iterator() //依赖具体容器的成员内部类
返回在此 collection 的元素上进行迭代的迭代器。
5.其它
boolean retainAll(Collection<?> c)
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。 A∩B
---------------------------------------
Collection
|--List:有序(存入和取出的顺序一致),元素都有索引,可以重复。
|--Set:无序,不重复。
List的常见方法,可以操作索引。
1.添加
boolean add(E e)
向列表的尾部添加指定的元素(可选操作)。
void add(int index, E element)
在列表的指定位置插入指定元素(可选操作)。
boolean addAll(Collection<? extends E> c)
添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。
boolean addAll(int index, Collection<? extends E> c)
将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
2.删除
E remove(int index)
移除列表中指定位置的元素(可选操作)。
boolean remove(Object o)
从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。
boolean removeAll(Collection<?> c)
从列表中移除指定 collection 中包含的其所有元素(可选操作)。
3.修改
E set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。
4.获取
E get(int index)
返回列表中指定位置的元素。
int indexOf(Object o)
返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
int lastIndexOf(Object o)
返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。
List<E> subList(int fromIndex, int toIndex)
返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
总结:List是可以对数据完成增删改查集合容器。
List
|--Vector:内部是数组数据结构,同步,可变长度,100%延长,增删改查都超慢!!已挂!
|--ArrayList:内部是数组数据结构,不同步,替代了Vector,如果多线程直接给ArrayList加锁,可变长度(初始化为10),50%延长
|--LinkedList:内部是链表数据结构,不同步
后续~~
|
|