我有地圖列表,我想使用鍵排列列表中的地圖。截至目前,我實現這個使用下面的方法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。我會牢記這一點。 –