欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

Guava学习之TreeMultimap

  TreeMultimap类是Multimap接口的实现子类,其中的key和value都是根据默认的自然排序或者用户指定的排序规则排好序的。在任何情况下,如果你想判断TreeMultimap中两个元素是否相等,都不要使用equals方法去实现,而需要用compareTo或compare函数去判断。下面探讨一下TreeMultimap类的源码实现:

   TreeMultimap里面一共有两个构造函数,实现如下:
private transient Comparator<? super K> keyComparator;
private transient Comparator<? super V> valueComparator;

TreeMultimap(Comparator<? super K> keyComparator,
                  Comparator<? super V> valueComparator) {
     super(new TreeMap<K, Collection<V>>(keyComparator));
     this.keyComparator = keyComparator;
     this.valueComparator = valueComparator;
}
   
private TreeMultimap(Comparator<? super K> keyComparator,
                   Comparator<? super V> valueComparator,
                   Multimap<? extends K, ? extends V> multimap) {
     this(keyComparator, valueComparator);
     putAll(multimap);
}

第一个构造函数有两个参数,keyComparator是指定TreeMultimap中key是按照什么比较算法