Collection/Map
|
接口
|
成员重复性
|
元素存放顺序(
Ordered/Sorted
)
|
元素中被调用的方法
|
基于那中数据结构来实现的
|
HashSet
|
Set
|
Unique elements
|
No order
|
equals()
hashCode()
|
Hash
表
|
LinkedHashSet
|
Set
|
Unique elements
|
Insertion order
|
equals()
hashCode()
|
Hash
表和双向链表
|
TreeSet
|
SortedSet
|
Unique elements
|
Sorted
|
equals()
compareTo()
|
平衡树(
Balanced tree
)
|
ArrayList
|
List
|
Allowed
|
Insertion order
|
equals()
|
数组
|
LinkedList
|
List
|
Allowed
|
Insertion order
|
equals()
|
链表
|
Vector
|
List
|
Allowed
|
Insertion order
|
equals()
|
数组
|
HashMap
|
Map
|
Unique keys
|
No order
|
equals()
hashCode()
|
Hash
表
|
LinkedHashMap
|
Map
|
Unique keys
|
Key insertion order/Access order of entries
|
equals()
hashCode()
|
Hash
表和双向链表
|
Hashtable
|
Map
|
Unique keys
|
No order
|
equals()
hashCode()
|
Hash
表
|
TreeMap
|
SortedMap
|
Unique keys
|
Sorted in key order
|
equals()
compareTo()
|
平衡树(
Balanced tree
)
|
Collection/Map
|
接口
|
成员重复性
|
元素存放顺序(
Ordered/Sorted
)
|
元素中被调用的方法
|
基于那中数据结构来实现的
|
HashSet
|
Set
|
Unique elements
|
No order
|
equals()
hashCode()
|
Hash
表
|
LinkedHashSet
|
Set
|
Unique elements
|
Insertion order
|
equals()
hashCode()
|
Hash
表和双向链表
|
TreeSet
|
SortedSet
|
Unique elements
|
Sorted
|
equals()
compareTo()
|
平衡树(
Balanced tree
)
|
ArrayList
|
List
|
Allowed
|
Insertion order
|
equals()
|
数组
|
LinkedList
|
List
|
Allowed
|
Insertion order
|
equals()
|
链表
|
Vector
|
List
|
Allowed
|
Insertion order
|
equals()
|
数组
|
HashMap
|
Map
|
Unique keys
|
No order
|
equals()
hashCode()
|
Hash
表
|
LinkedHashMap
|
Map
|
Unique keys
|
Key insertion order/Access order of entries
|
equals()
hashCode()
|
Hash
表和双向链表
|
Hashtable
|
Map
|
Unique keys
|
No order
|
equals()
hashCode()
|
Hash
表
|
TreeMap
|
SortedMap
|
Unique keys
|
Sorted in key order
|
equals()
compareTo()
|
平衡树(
Balanced tree
)
|
1 、容器类和 Array的区别、择取
* 容器类仅能持有对象引用(指向对象的指针),而不是将对象信息 copy 一份至数列某位置。
* 一旦将对象置入容器内,便损失了该对象的型别信息。
2 * 在各种 Lists 中,最好的做法是以 ArrayList作为缺省选择。当插入、删除频繁时,使用 LinkedList() ;
Vector总是比 ArrayList 慢,所以要尽量避免使用。
* 在各种 Sets 中,HashSet 通常优于TreeSet (插入、查找)。只有当需要产生一个经过排序的序列,才用 TreeSet 。
TreeSet存在的唯一理由:能够维护其内元素的排序状态。
* 在各种 Maps 中
HashMap用于快速查找。
* 当元素个数固定,用 Array ,因为Array 效率是最高的。
结论:最常用的是ArrayList,HashSet ,HashMap,Array 。而且,我们也会发现一个规律,用 TreeXXX都是排序的。