Java集合归纳

Java集合设计时基本接口主要为Collection和Map,请牢牢抓住这个要点,这样你就知道处理数据的结构从顶层分类上是什么样的,Collection主要用来存储数据并提取数据,Map存储键值对数据并根据键值提取数据。当然,集合框架具备简单处理数据的能力。根据下图我们看到,左上角灰色区域里的部分是线程安全且被遗弃的类型,其中Dictionary的替代品的Map,Dictionary在很多语言中代表的就是键值对,例如python中,就有dictionary这种结构,Dictionary虽然被Java遗弃,但是在其他语言中依然很流行。HashTable的替代品是ConcurrentHashMap,Vector的非线程安全替代品的List,Stack目前没有替代品,有需要Stack的地方还是得用Stack。

1、Map

非线程安全:EnumMapIdentityHashMapHashMapLinkedHashMapWeakHashMapTreeMap

线程安全:ConcurrentHashMapConcurrentSkipListMap

2、Collection

Collection接口分为List、Queue和Set三种子接口。

非线程安全:

List:ArrayListLinkedList

Queue:PriorityQueueLinkedListArrayDeque

Set:HashSetLinkedHashSetTreeSet

线程安全:

List:CopyOnWriteArrayList

Queue:

Set:CopyOnWriteArraySet ConcurrentSkipListSet

 

Java集合归纳