私はマップのリストを持っており、キーを使ってリスト内のマップをソートしたいと思います。今のところ、私は..以下Collections.sort
方法を使用してこれを達成しています Java8の複数のキーを使用したマップのリストの並べ替え
Collections.sort(listOfMaps, new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
//return o1.get("cm_order_x").compareTo(o2.get("cm_order_x"));
String x1 = o1.get(Key1);
String x2 = o2.get(Key1);
String x3 = o1.get(Key2);
String x4 = o2.get(Key2);
int sComp = x1.compareTo(x2);
int sComp1 = x3.compareTo(x4);
if (sComp != 0) {
return sComp;
}
else if(sComp1 != 0) {
//return x3.compareTo(x4);
return sComp1;
}
else
{
String x5 = o1.get(Key3);
String x6 = o2.get(Key3);
return x5.compareTo(x6);
}
}
});
は、Java 8で
maps
の
list
をソートする他のより良い方法はありますか?
を、これらの変数は、本当に素晴らしい名前ではありません。 'x1'と' x2'は関連していると示唆するものは何もないが、 'x2'と' x3'は関連していない。私はあなたが "長い"名前を恐れないように勧めます: 'String key1FromO1 = o1.get(Key1)'、例えば。 – yshavit
提案のおかげで@yshavit。私はこれを念頭に置いておきます。 –