Java基础系列

Java中的Map接口有诸多实现,参考,一般会从效率,键值对的保存及呈现次序,对象的保存周期,映射表如何在多线程程序中工作以及判定”键”等价的策略等方面来考虑它们之间的区别.

如果要使用自己的类作为HashMap的键,必须同时重载hashCode()和equals().其中object类中默认的hashCode()是会根据对象的地址生成对应的散列码.而默认的equals()只是比较对象的地址,而不是内容.

HashMap
TreeMap

唯一可以排序的,需要是使用comparator或者comparable来确定顺序.

基于红黑树实现的

唯一带有subMap()方法的,能返回子树的Map

LinkedHashMap

键值对的顺序是按插入的顺序来排的或者是最近最少使用(LRU)的次序,于是没有被访问过的元素就会出现的队列的前面.

WeakHashMap
ConcurrentHashMap
IdentityHashMap