【发布时间】:2020-12-23 06:24:21
【问题描述】:
我要对列表列表进行排序,例如:
List<List<String>> listOflists = new ArrayList();
List<String> b = {"x", "x"};
List<String> a = {"x"};
List<String> c = {"x", "x", "x"};
listOflists.add(a);
listOflists.add(b);
listOflists.add(c);
//Oder by size of the array
List<String> sortedList = listOflists.stream().sorted().collect(Collectors.toList());
我预计 forEach 进程中的 listOflists:
洛普 1 x 洛普 2 x,x 洛普 3 x,x,x
【问题讨论】:
-
只是好奇:字符串
Lopp 1来自哪里?我在您的代码中没有看到它。 -
如果您的目标是根据列表大小对它们进行排序,那么您可以在
sorted方法中通过提供类似sorted(Comparator.comparing(List::size))的 Comparator 来指定它。但令人困惑的是sortedList的返回类型。应该是List<List<String>> sortedList而不是List<String> sortedList? -
您的问题需要更多细节。您的预期输出是不够的。您的分拣要求到底是什么?元素的数量,每个元素的词法等级,如果两个列表具有相同数量和/或类型的元素该怎么办。等等?你需要明确。