【发布时间】:2019-11-14 02:05:29
【问题描述】:
我正在尝试使用 Comparator.comparing 对 Java 集进行排序。
我已经尝试了以下
Set<Survey> sortedSet = surveySet.stream().sorted(Comparator.comparing(Survey::getCreatedDate).reversed()).collect(Collectors.toSet())
它返回相同的排序,而不按 createdDate 排序(与最近的一样)。我做错了什么?
更新:
只是提供一个更新,我实际上是如何通过变通解决我的问题的。
将集合转换为列表,然后在有效的列表上应用 Comparator.comparing。
List<Survey> sortedSurveyList = surveySet.stream().collect(Collectors.toList());
Collections.sort(sortedSurveyList,(Comparator.comparing(Survey::getCreatedDate).reversed()));
return sortedSurveyList;
不过,这不是我要寻找的答案。我想知道为什么 Comparator.comparing 不适用于 Set。
【问题讨论】: