Java 对传递的字符串使用Comparator.thenComparing

Java 对传递的字符串使用Comparator.thenComparing,java,algorithm,sorting,lambda,comparator,Java,Algorithm,Sorting,Lambda,Comparator,我正在使用streams尝试在映射中创建一个键的arraylist,首先按值(整数)排序,然后按字母顺序排序键。我按值对它们进行了排序,但尝试按字母顺序进行比较时出错: returnmap.keySet() .stream() .sorted(Comparator.comparing((k1)->map.get(k1)).thenComparing(String::compareTo))//ErrorHere .toArray(字符串[]::新建); Coc java给了我一个方法,然后比较(

我正在使用streams尝试在映射中创建一个键的arraylist,首先按值(整数)排序,然后按字母顺序排序键。我按值对它们进行了排序,但尝试按字母顺序进行比较时出错:

returnmap.keySet()
.stream()
.sorted(Comparator.comparing((k1)->map.get(k1)).thenComparing(String::compareTo))//ErrorHere
.toArray(字符串[]::新建);

Coc java给了我一个
方法,然后比较(Comparator您可能只需要显式指定类型,例如
Comparator.comparing((String k1)->map.get(k1))
,或者
Comparator.comparating(map::get)
,这就是问题所在!非常感谢。