如何在3个类别中对列表进行排序 [英] How to sort List of List in 3 Categories
本文介绍了如何在3个类别中对列表进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想基于许多列对列表进行排序,但是我不知道如何进行.
I want to sort a list based on many columns but I do not know how to proceed.
输入:
List<String> a = ["TEAMA", "COUNTRYA", "AGEA", "PLAYERA"]
List<String> b = ["TEAMB", "COUNTRYF", "AGEA", "PLAYERB"]
List<String> c = ["TEAMC", "COUNTRYR", "AGEB", "PLAYERC"]
List<String> d = ["TEAMB", "COUNTRYF", "AGEC", "PLAYERD"]
List<String> e = ["TEAMA", "COUNTRYA", "AGEA", "PLAYERE"]
List<String> f = ["TEAMA", "COUNTRYF", "AGEE", "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", "AGEA", "PLAYERA"]
["TEAMA", "COUNTRYA", "AGEA", "PLAYERE"]
["TEAMA", "COUNTRYF", "AGEE", "PLAYERF"]
["TEAMB", "COUNTRYF", "AGEA", PLAYERB"]
["TEAMB", "COUNTRYF", "AGEC", "PLAYERD"]
["TEAMC", "COUNTRYR", "AGEB", "PLAYERC"]
我该如何进行呢?
推荐答案
您可以创建具有多个列的比较器,并一次使用一个比较器,或者将它们链接起来以按照多种排序标准进行排序:
You can create as many comparators as you have columns and use one at a time or chain them to sort by multiple sorting criteria:
Comparator<List<String>> byIndex0 = Comparator.comparing(i -> i.get(0));
Comparator<List<String>> byIndex1 = Comparator.comparing(i -> i.get(1));
Comparator<List<String>> byIndex2 = Comparator.comparing(i -> i.get(2));
Comparator<List<String>> byIndex3 = Comparator.comparing(i -> i.get(3));
按期望的标准对最终列表进行排序,例如.按第一个索引(团队)
Sort your final list by the deseired criteria, eg. by the first index (Team)
FinalList.sort( byIndex0 );
要按两个条件排序,您可以使用#thenComparing
将它们链接起来,例如.按团队,然后按国家
To sort by two criterias you can just chain them using #thenComparing
, eg. by team an then by country
FinalList.sort( byIndex0.thenComparing(byIndex1));
或全部使用
FinalList.sort( byIndex0.thenComparing(byIndex1).thenComparing(byIndex2).thenComparing(byIndex3));
这篇关于如何在3个类别中对列表进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文