java - 如何在Java中对多个列表进行排序

标签 java sorting arraylist

我想根据许多列对列表进行排序,但我不知道如何继续。

输入:

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/

相关文章:

java - 通过 JFrame 添加到 ArrayList 时出现 NullPointerException 错误

java - neo4j 动态关系类型,不使用枚举

java - 调试 JNLP 安全问题

java - 使用2个数组进行插入排序java

java - 从文件中打印偶数行和奇数行

java - Struts2中Select标签中ArrayList的ArrayList

java - 当之前定义相等时,使两个列表不相等

java - 谷歌地图不显示 Android

java - AsyncTask 和套接字在 android java 中不起作用

java - 当数组中有很多重复项时优化 QuickSort