LinkedHashMap类
- LinkedHashMap是Map接口的哈希表和链表的实现,这个实现与HashMap不同之处在于它维护了一个贯穿其所有条目的双向链表。这个链表定义了遍历顺序,通常是插入map中的顺序。
- 它提供了一个特殊的LinkedHashMap(int,float,boolean)构造器来创建LinkedHashMap,其遍历顺序是其最后一次访问的顺序。
- 可以重写removeEldstEntry(Ma[.Entry)方法,以便在将新映射添加到map时强制删除过期映射的策略。
- 这个类提供了所有可选择的map操作,并且允许null元素。由于维护链表的额外开销,性能可能会低于HashMap,有一条除外:遍历LinkedHashMap中的collection-views需要与map.size成正比,无论其容量如何。HashMap的迭代看起来开销更大,因为还要求时间与其容量成正比。
- LinkedHashMap有两个因素影响它的构成:初始容量和加载因子。
- LinkedHashMap的实现不是线程安全的。如果多线程并发访问LinkedHashMap,并且至少一个线程修改了map,必须进行外部加锁。通常通过在自然封装集合的某个对象上进行同步来实现Map m =Collections.synchronizedMap(new linkedHashMap(...))。它也支持fast-fail机制。
欢迎批评指正,提出问题,谢谢!