TreeMultimap

Google collecions ライブラリの TreeMultimap は、使うことが多そう。

com.google.common.collect.TreeMultimap<K,V>

public static <K,V> TreeMultimap<K,V> create(Comparator<? super K> keyComparator
                                            ,Comparator<? super V> valueComparator)

サンプルは、こんな風、、、

TreeMultimap<String,Foo> m = TreeMultimap. create(
   new Comparator<String>(){
       @Override
       public int compare(String s1,String s2){
          
return s1.compareTo(s2);
       }
   }
   ,new Comparator<Foo>(){

       @Override
       public int compare(Foo f1,Foo f2){
          
//return f1.seq.compareTo(f2.seq) >= 0 ? -1 : 1; // 降順
          return f1.seq.compareTo(f2.seq) >= 0 ? 1 : -1; // 昇順
       }
   }
);


m.put("a",new Foo(10,"AAA"));
m.put("a",new Foo(14,"BBB"));
for(String key : m.keySet()){
  for(Foo foo : m.get(key)){
      System.out.println("seq="+foo.seq+"  val="+foo.val);
   }
}
----------------
class Foo{
   public Integer seq;
   public String val;
   public Foo(Integer seq,String v){
     this.seq = seq;
     this.val = v;
   }
}
----------------
TreeMultimap#size()          →総数
TreeMultimap#asMap().size()  →Keyの数