【发布时间】:2020-05-11 04:53:29
【问题描述】:
我打算从哈希图中对键进行排序。我正在使用自定义的排序方法。
以下代码在 compareTo() 方法上给了我编译时错误,我使用 Set 作为集合
Set<String> set = map.keySet();
Collections.sort(set, (a, b) -> map.get(a) == map.get(b) ? a.compareTo(b) : map.get(b) - map.get(a));
如果我将 Set 转换为 List 然后排序,那么一切工作正常。
List<String> words = new ArrayList<>(map.keySet());
Collections.sort(words, (a, b) -> map.get(a) == map.get(b) ? a.compareTo(b) : map.get(b) - map.get(a));
我需要转换为 List 来对集合进行排序的原因是什么?为什么我不能使用 Set 排序?
【问题讨论】:
标签: java sorting lambda collections compareto