我想根据许多列对列表进行排序,但我不知道如何继续。
输入:
List<String> a = ["TEAMA", "COUNTRYA", "PLAYERA"]
List<String> b = ["TEAMB", "COUNTRYF", "PLAYERB"]
List<String> c = ["TEAMC", "COUNTRYR", "PLAYERC"]
List<String> d = ["TEAMB", "COUNTRYA", "PLAYERD"]
List<String> e = ["TEAMA", "COUNTRYA", "PLAYERE"]
List<String> f = ["TEAMA", "COUNTRYF", "PLAYERF"]
List<List<String>> FinalList = []
FinalList.add(a)
FinalList.add(b)
FinalList.add(c)
FinalList.add(d)
FinalList.add(e)
FinalList.add(f)
输出:
["TEAMA", "COUNTRYA", "PLAYERA"]
["TEAMA", "COUNTRYA", "PLAYERE"]
["TEAMA", "COUNTRYF", "PLAYERF"]
["TEAMB", "COUNTRYA", "PLAYERD"]
["TEAMB", "COUNTRYF", "PLAYERB"]
["TEAMC", "COUNTRYR", "PLAYERC"]
我该如何继续下去?
最佳答案
即使您的个人列表大小超过 3,这也会排序
public class SortListExample {
public static void main(String[] args) {
List<String> a = Arrays.asList("TEAMA", "COUNTRYA", "PLAYERA");
List<String> b = Arrays.asList("TEAMB", "COUNTRYF", "PLAYERB");
List<String> c = Arrays.asList("TEAMC", "COUNTRYR", "PLAYERC");
List<String> d = Arrays.asList("TEAMB", "COUNTRYA", "PLAYERD");
List<String> e = Arrays.asList("TEAMA", "COUNTRYA", "PLAYERE");
List<String> f = Arrays.asList("TEAMA", "COUNTRYF", "PLAYERF");
List<List<String>> FinalList = new ArrayList<>();
FinalList.add(a);
FinalList.add(b);
FinalList.add(c);
FinalList.add(d);
FinalList.add(e);
FinalList.add(f);
List<List<String>> listToSort = new ArrayList<>(FinalList);
listToSort.sort((l1, l2) -> {
int i = 0;
while (true) {
if (l1.get(i) != null && l2.get(i) != null) {
int compareVal = l1.get(i).compareTo(l2.get(i));
if (compareVal != 0) {
return compareVal;
}
i++;
}
}
});
for (List<String> list: listToSort) {
System.out.println(list);
}
}
}
关于java - 如何在Java中对多个列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60565307/