Map 接口定义的集合又称为查找表,用于存储所谓“key-value"映射对。Key可以看成是Value 的索引,作为key的对象在集合中不可重复。其中键是唯一的,值可以不唯一,一个键可以指向多个值。
Map接口的实现类主要包括以下几种:
- HashMap
- TreeMap
- LinkedHashMap
- HashTable
- ConcurrentHashMap
下面就针对以上的几种常用的实现类具体进行一下简介。
1.HashMap
基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射。HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改。HashMap是非synchronized,所以HashMap很快。
2.TreeMap
TreeMap类不仅实现了Map接口,还实现了java.util.SortMap接口,因此集合中的映射关系具有一定的顺序.但是在添加,删除,和定位映射关系上,TreeMap类比HashMap类的性能差一些.TreeMap类实现的Map集合中的映射关系是根据键值对象按一定的顺序排列的.因此不允许键对象是null。
3.LinkedHashMap
LinkedHashMap是HashMap的子类,但是内