在Java中,容器其实就是指集合(注意:不是Spring容器)集合分为两大接口,分别是Collection和Map接口。在上一篇文章中我更新了Collection接口的内容,今天这篇文章我们来看Map接口
Map接口
如图,Map接口与Collection接口不同的是,它是一个顶级接口
Map接口有两个具体实现类分别是HashMap和HashTable,还有一个子接口SortedMap
HashMap
它底层基于数组+链表+红黑树进行实现,在快速获取一个值的场景中使用频率较高,是平时开发很常用的集合。它还有一个子类,即LinkedHashMap,在JSON数据转换时,默认的转换类型就是这个子类。
HashTable
它和HashMap很像,主要区别在于HashTable底层使用了Synchronized关键字,每次操作时都会锁住整个HashTable,导致效率低,使用少。HashTable的子类Properties,常用在属性文件读取上
SortedMap
它代表可以对key做排序,而SortedMap子接口NavigableMap代表的是可做范围查询的一个Map,具体的实现是TreeMap,底层是红黑树