我有一个矩阵,我想知道是否有任何方法可以对每行进行排序,我已经尝试通过遍历ArrayList并在每行中比较每个元素来手动对其进行排序,但这似乎很乏味。有没有更好的方法让我对此进行排序。我在考虑使用lambdas / streams
我有以下字符串列表,
List<List<String>> matrix = new ArrayList<List<String>>();
假设矩阵包含ff:
sad,eat,air,vice,ride
cash,grade,save,hide,are
twin,grid,goose,hey,shade
排序后的输出为:
air,eat,ride,sad,vice
are,cash,grade,hide,save
goose,grid,hey,shade,twin
通过使用循环和比较器按照我想要的方式对其进行排序来解决我的问题。这是代码:
for (List<String> row : matrix) {
row.sort(Comparator.comparing(r -> r.getString()));
}
答案 0 :(得分:0)
试试这个。
matrix.forEach(row -> Collections.sort(row));
答案 1 :(得分:-1)
您可以将forEach()
用于主列表,并将sort()
用于每个子列表:
matrix.stream().forEach(m -> {
System.out.print(m.stream().sorted().collect(Collectors.joining(", ")));
System.out.println();
});