LinkedHashMap有什么特点?有序特性如何实现的?
时间: 2024-08-16 20:07:47 浏览: 140
第9讲 对比Hashtable、HashMap、TreeMap有什么不同?1
LinkedHashMap是一种关联容器,它结合了HashMap和LinkedHashSet的特点。它的主要特点是:
1. **顺序访问**:LinkedHashMap维护了一个插入顺序链表,可以按照元素添加的顺序进行遍历,这对于需要保持数据插入顺序的应用场景很有帮助。
2. **哈希映射**:像HashMap一样,提供快速的查找、插入和删除操作,平均时间复杂度为O(1)。
3. **线程安全**:默认情况下,LinkedHashMap是线程不安全的。如果在并发环境下使用,可以通过传递`ConcurrentSkipListMap`作为底层数据结构来使其变得线程安全。
4. **容量扩大和缩小**:当内部链表长度超过85%或负载因子超过0.75时,会自动调整大小。调整大小时,会保持原有的排序顺序。
关于顺序性的实现,LinkedHashMap维护两个头节点,一个是正常的头节点,用于存储所有键值对,另一个是链表的头部,用于保存最近添加的元素。当添加新元素时,会添加到链表头部;删除元素时,链表头部的元素会被移动到正常头节点。这样,遍历链表就能得到按插入顺序排列的结果。
阅读全文