ArrayList(List):
特点:
元素有放入顺序,元素可重复。
存储结构:
底层采用数组来实现的。
Array:查询快,插入慢。
LinkedList(List):
特点
元素无放入顺序,元素可重复
存储结构:
底层采用链表实现的。
Linked:查询慢,插入快。
HashSet(set):
特点:
元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有
该元素的HashCode决定的,其位置其实是固定的)
存储结构:
底层采用HashMap来实现
HashMap(Map):
特点:
key,value存储,key可以为null,同样的key会被覆盖。
存储结构:
底层采用数组、链表、红黑树来实现的。
原理讲解:
哈希算法(也叫散列)
取模:节省空间
用链表是来解决数组下标会覆盖的问题,冲突问题。为什么hashmap用两个数据结构。
链表查询的时候链表过长查询效率低,所以要用红黑树。
当链表的长度大于8的时候会用红黑树。当长度为6红黑树变链表。
0.75会扩容。
ConcurrentHashMap()
特点:
并发安全的HashMap ,比Hashtable效率更高
存储结构:
底层采用数组、链表、红黑树 内部大量采用CAS操作。并发控制使⽤synchronized 和CAS 来操作来实现的。
锁粒度小 头链表
cas lock
不阻塞 阻塞
