Collection
集合层次结构中的根类 。 集合表示一组被称为其元素的对象。 一些集合允许重复元素,而其他集合不允许。
Collection
| ├List 有顺序的结合
| │-├LinkedList
| │-├ArrayList
| │-└Vector
| │ └Stack
| ├Set
| │├HashSet
| │├TreeSet
| │└LinkedSet
|
|Map
├Hashtable
├HashMap
└WeakHashMap
Iterable
迭代器 实现此接口允许对象成为“for-each loop”语句的目标 可以为每个元素遍历
Map
一组成对的“键值对”对象,允许你使用键来查找值
List
有序集合(也称为序列 )。 该界面的用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素
子类 ArrayList LinkedList Vector Stack
ArrayList
底层是用数组实现的集合
特点 线程不同步 查询快 插入删除慢 允许null值
LinkedList
底层是用双向链表实现的储存
特点 查询效率低 增删效率高 线程不安全 允许null值
Vector
Vector非常类似ArrayList
特点 线程不同步
Stack
Stack继承自Vector,实现一个后进先出的堆栈 Deque接口及其实现提供了更完整和一致的LIFO堆栈操作集,这些接口应优先于此类
主要方法 E pop() 删除此堆栈顶部的对象,并将该对象作为此函数的值返回。
E push(E item) 将项目推送到此堆栈的顶部。
特点 后进先出
Set
不包含重复元素的集合
子类 HashSet TreeSet
HashSet
此类实现Set接口,实现基于HashMap
特点 它不允许出现重复元素;
不保证和政集合中元素的顺序
允许包含值为null的元素,但最多只能有一个null元素。 访问速度大于TreeSet
TreeSet
此类实现Set接口,实现基于TreeMap 可以实现排序等功能的集合
特点 储存的数值必须提供比较器 内部根据比较器自动排序 保持集合有序性
LinkedHashSet
哈希表和链表实现了Set接口,具有可预测的迭代次序.
特点 链表来保持插入顺序,不过为了提高查询效率,也使用了散列。
Map
将键映射到值的对象
子类 HashSet Hash
HashSet
基于哈希表的实现的Map接口。
特点 可以快速访问
TreeMap
特点 保持"key"处于排序状态,访问速度不如HashMap
LinkedHashMap
特点 LinkedHashMap保持元素插入时顺序,同时提供散列实现快速访问