Java集合·11·Map总结

2018-03-26  本文已影响0人  Lynn_R01612x2

一、Map概括

collection09.jpg

总结:

接口:

Map,“键值对(key-value)”映射的抽象接口。

SortedMap,继承Map,有序的“键值对(key-value)”映射的抽象接口。

NavigationMap,继承SortedMap,支持导航函数的接口。

抽象类:

AbstractMap,实现了Map中的大部分函数接口。减少了“Map的实现类”的重复编码。

实现类:

HashMap,基于“拉链法“实现的散列表,一般用于单线程环境中。

HashTable,基于“拉链法”实现的散列表,一般用于多线程环境中。

WeakHashMap,基于“拉链法”实现的散列表,用于多线程环境中,与HashMap相比,WeakHashMap中的键是“弱键”,当“弱键”被GC回收时,它对应的键值对也会被从WeakHashMap中的删除,与此相对,HashMap中的键是“强键”。

TreeMap,有序的散列表,基于“红黑树”实现,一般用于单线程环境中。

二、使用场景

HashMap、HashTable、WeakHashTable、TreeMap区别较大,需要根据具体的要求来选择合适的类。

三、比较

1.HashMap与HashTable的异同点

相同点:

不同点:

2.HashMap与WeakHashMap的异同点

相同点:

不同点:

五、其他

1.LinkedHashMap

a. 概述

官方定义:

Hash table and linked list implementation of the Map interface, with predictable iteration order.

支持可预测的遍历顺序的键值对映射集合。

继承自HashMap。

实现了Map接口,支持“键值对(key-value)”映射。

b. 数据结构

拉链法

LinkedHashMapEntry

继承HashMapEntry,添加before和after两个LinkedHashMapEntry引用,表示遍历顺序。

c. 特点

d. 实现要点

e. 性能(与HashMap比较)

f. 扩展

上一篇 下一篇

猜你喜欢

热点阅读