我需要按照列表中出现的次数(降序)对 List<String>
进行排序,同时从中删除重复项。我在 Java 中编写了以下有效的算法:
private List<String> sortByFrequency(List<String> sequence) {
return
sequence.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
.entrySet().stream()
.sorted(Map.Entry.<String, Long>comparingByValue(Comparator.reverseOrder())
.thenComparing(Map.Entry.comparingByKey()))
.map(Map.Entry::getKey)
.collect(Collectors.toList());
}
但对于Kotlin不起作用: Kotlin 代码 因为我收到了以下异常:
Type inference failed. Expected type mismatch:
required:
Collector<in String!, Any!, Long!>!
found:
Collector<String!, *, Long!>!
我遇到了技术问题,无法解决。或许你能告诉我怎么处理?