Map.Entry

辞書(ハッシュ、マップ)のキーとエントリの両方の値を使って並べ替えを行いたいケース、.net C#の場合ならKeyValuePair構造体を使うのだが、Javaでこれに相当するものは無いのだろうなと思い込んでいた。

ちゃんとあるし。

Map map = this.getAttributeMap();
ArrayList> list = new ArrayList>(map.entrySet());
Collections.sort(list, new Comparator>(){
        @Override
        public int compare(Map.Entry o1, Map.Entry o2) {
            if ( o1.getValue().Order() == o2.getValue().Order()) {
                return 0;
            } else ...
            :
            : 並べ替え処理
            :
        }});

こういう書き方をしなくちゃならない場合、ジェネリクスだと却って見づらいな。