Map接口体系-猿来绘Java-51

 先对Map继承的体系做一个概览(以下为Map接口的常用实现类)

 Map: since JDK1.2 双列数据,存储key-value对的数据

HashMap: since JDK1.2 ,其作为Map的主要实现类,也是最常用的;线程不安全的,效率高;可存储null的key和value

HashMap的子类 LinkedHashMap: since JDK1.4, 保证在遍历map元素时,可以按照添加的顺序实现遍历。

出现的背景:在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素。

对于频繁的遍历操作,执行效率高于HashMap。

TreeMap: since JDK1.2, 保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序或定制排序,底层使用红黑树

Hashtable: since JDK1.0 作为古老的实现类;线程安全的,效率低;不能存储null的key和value

Hashtable的子类 Properties:常用来处理配置文件。key和value都是String类型

 

Map结构的理解

Map中的key:无序的、不可重复的,使用Set存储所有的key ,key所在的类要重写equals()和hashCode() (以HashMap为例)

Map中的value:无序的、可重复的,使用Collection存储所有的value,value所在的类要重写equals() containsValue方法会使用equals

一个键值对:key-value构成了一个Entry对象。

Map中的entry:无序的、不可重复的,使用Set存储所有的entry

おすすめ

転載: blog.csdn.net/asdfjklingok/article/details/118677826