有序的map类--TreeMap

 TreeMap中的元素默认按照keys的自然排序排列。(对Integer来说,其自然排序就是数字的升序;对String来说,其自然排序就是按照字母表排序)

public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, Serializable

TreeMap存储 Key-Value 对时,需要根据 key-value 对进行排序。 TreeMap 可以保证所有的 Key-Value 对处于有序状态。
TreeMap 的 Key 的排序:
①自然排序:TreeMap 的所有的 Key 必须实现 Comparable 接口,而且所有的 Key 应该是同一个类的对象,否则将会抛出 ClasssCastException
②定制排序:创建 TreeMap 时,传入一个 Comparator 对象,该对象负责对 TreeMap 中的所有 key 进行排序。此时不需要 Map 的 Key 实现 Comparable 接口
TreeMap判断两个key相等的标准:两个key通过compareTo()方法或者compare()方法返回0。
若使用自定义类作为TreeMap的key,所属类需要重写equals()和hashCode()方法,且equals()方法返回true时,compareTo()方法应返回0。

 TreeMap内部用红黑树保存数据,迭代顺序按照key值有序,与HashMap相比效率更低,只建议在需要按序索引key值时使用,它也是非线程安全的,key和value均不能为null值。

TreeMap 实现一致性Hash算法

https://blog.csdn.net/qq_34626097/article/details/83834358

https://www.cnblogs.com/fanguangdexiaoyuer/p/6549306.html

原文地址:https://www.cnblogs.com/dingpeng9055/p/11718514.html