TreeMapのコンストラクタにはComparatorインタフェースをimplementsしたクラスを引数にすることができます。
Comparatorはソートする順を定義するクラスです。
以下、実装例です。
package purejava;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class CompTest{
public static void main(String[] args) {
Map map = new TreeMap(new Comp());
map.put( a , test2 );
map.put( c , test1 );
map.put( b , test3 );
for (Iterator<String> itr = map.keySet().iterator();itr.hasNext();){
String key = (String)itr.next();
String value = (String)map.get(key);
System.out.println(key + = + value);
}
}
// ソートするルールを定義
static class Comp implements Comparator{
public int compare(Object arg0,Object arg1) {
return ((Comparable)arg0).compareTo(arg1) * -1;// 降順でソート
}
}
}
結果は以下の通りです。
c = test1
b = test3
a = test2