LZ今天来跟大家一起分享集合类整体都包含哪些?
Collection-
List-
Vector-线程安全数组型单值集合。适合用于多线程下来保证数据一致性和安全性。由于使用数组索引数据结构,非常适合用户频繁查询的业务场景。因为添加和删除元素,通过System类调用底层的copyOf方法对整个数组进行重构,不适合进行频繁的增删改操作。
ArrayList-线程不安全数组型单值集合。适合用于单线程中进行单值数列的存储。特性和Vector类似。
LinkedList-线程不全双链表型单值集合。由于采用链表数据结构,适合用于频繁进行增删改操作的业务场景。查询需要遍历整个链表,因此不适合频繁的进行查询操作。
CopyOnWriterArrayList-适合用于读多写少的情况。加锁的读写分离数组型单值集合。在写入数据时,并不影响数据的读取,写入的时候是将之前的数据进行复制,然后在副本上进行修改。
Set-无重复值,无序
HashSet-HashMap的key。set中的值是没有重复的,key唯一。
TreeSet-树结构set,用于排序
Map-key/value
HashMap-高效,但不是线程安全的。
HashTable-线程安全,是Synchronized重量级锁,效率差。
ConcurrentHashMap-线程安全,分段锁。CAS+Synchronized。效率低于HashMap
ConcurrentSkipMap-跳表数据结构的Map,内部结构是链表结构,包含右节点和下节点。主要是通过空间换时间来提高查询效率。速度比ConcurrentHashMap要快,并且是有序的map
TreeMap-树结构的map
SortedMap-排序map
在帝都打拼的struggle&小青年。喜欢的可以点赞哦!
一帆风顺只是希望,
逆水行舟才是生活。
加油,boy!