如何在java流中使用thenComparing

时间:2018-02-14 21:00:09

标签: java java-8 java-stream comparator

我有一个字符串作为值的地图。我想首先按长度排序,如果字符串的长度相同,我想按字母顺序排序。 我写了这些代码:

String out = outMap.values().stream()
                .sorted(Comparator.comparing(e -> e.length()).thenComparing()...)
                .collect(Collectors.joining());

问题是,当我写作然后比较时,我再也不能使用e.length()了。我该如何解决?

编辑:Map<Character, String>。我想对字符串进行排序,并通过concat将它们全部输出到输出中。

1 个答案:

答案 0 :(得分:4)

怎么样

String out = outMap.values().stream()
        .sorted(Comparator.comparing(String::length)
                          .thenComparing(Comparator.naturalOrder()))
        .collect(Collectors.joining());
相关问题