【发布时间】:2021-02-02 18:12:38
【问题描述】:
我正在使用流来尝试在映射中创建键的数组列表,首先按值(整数)排序,然后按字母顺序对键进行排序。我让它们按值排序,但在尝试按字母顺序比较它们时出现错误:
return map.keySet()
.stream()
.sorted(Comparator.comparing( (k1) -> map.get(k1)).thenComparing(String::compareTo)) //ErrorHere
.toArray(String[]::new);
Coc-java 给我一个The method thenComparing(Comparator<? super Object>) in the type Comparator<Object> is not applicable for the arguments (String::compareTo) 错误。我之前用过thenComparing,但是.sorted 方法看起来像这样:
.sorted(Comparator.comparing(String::length).thenComparing(String::compareTo))
这没有产生错误并且工作正常。我想这可能与 lamda 返回的内容有关?
【问题讨论】:
标签: java algorithm sorting lambda comparator