文章目录
List
ArrayList
数组作为底层实现,支持随机访问,线程不安全。
Vector
同ArrayList,线程安全。
LinkedList
链表作为底层实现,线程不安全。
Set
内部存储元素唯一且无序。
HashSet
以HashMap作为底层实现,线程不安全。
TreeSet
内部以TreeMap进行实现,会按元素大小进行排序,自定义对象需要实现comparable接口。
LinkedHashSet
使用LinkedHashMap实现,线程不安全,其中Linked记录了插入的顺序,可以迭代访问。
Queue
在两端实现push和pop的list。
Map
HashMap
底层实现算法为hash表,线程不安全。
当Hash表中,占用的元素超过默认负载因子时,HashMap会进行扩容操作,将hash表扩大为原来的两倍。
Java8特性
当某个表项中的链表长度超过8后,将其转换为红黑树进行存储。
TreeMap
进行过按键排序的Map数据,底层实现为红黑树。
ConcurrentHashMap
添加了段锁,即将哈希表分为一些段,并对每个段加锁。
HashTable
遗留类,线程安全,并行度不如ConcurrentHashMap。