集合:java中的集合有哪些?有什么区别?

2019-10-23  本文已影响0人  抄无止境
image.png
ConcurrentHashMap/ConcurrentHashSet

底层哈希实现的同步 Map(Set)。效率高,线程安全。使用系统底层技术实现线程安全。
量级较 synchronized 低。key 和 value 不能为 null。

ConcurrentSkipListMap/ConcurrentSkipListSet

底层跳表(SkipList)实现的同步 Map(Set)。有序,效率比 ConcurrentHashMap 稍低。

List

1.ArrayList集合
2. Vector集合
3.LinkedList集合
CopyOnWriteArrayList

Set集合 (元素不可重复,元素唯一)

1.Hashset集合

非线程安全的

2.TreeSet集合

非线程安全的

3.LinkedHashSet

Map

1.HashMap

非线程安全的
底层数据结构是哈希表

2.TreeMap

非线程安全的
底层数据结构是二叉树

1.HashTable

线程安全的

LinkedHashMap
ConcurrentHashMap
ConcurrentSkipListMap

java中的集合的选择

根据实际需求来选择合适的集合。

1.单列还是双列?

单列就选Collection类型的
双列选Map类型的

2.选择单列后

  看元素是否唯一?
    是: 选择Set集合
    否: 选择List集合
  看元素是否排序?
    是:TreeSet;
    否:HashSet
  看安全性高低?
    高:Vector
    低:ArrayList 或LinkedList
  增删多:LinkedList
  查询多:ArrayList

上一篇 下一篇

猜你喜欢

热点阅读