将下面的代码 List<GroupRankingBean> sortedList = li.stream() .sorted(Comparator.comparing(GroupRankingBean::getLast_year_rate_of_increase)) .collect(Collectors.toList());变成倒序排序
时间: 2024-02-04 14:03:45 浏览: 72
可以将Comparator的比较方式改为逆序排列即可,修改后的代码如下:
```
List<GroupRankingBean> sortedList = li.stream()
.sorted(Comparator.comparing(GroupRankingBean::getLast_year_rate_of_increase).reversed())
.collect(Collectors.toList());
```
其中,`reversed()`方法用于将Comparator的比较方式改为逆序排列。
相关问题
解释下这段代码 private static List<Meeting> scheduleByPosition(List<Meeting> meetings) { List<Meeting> sorted = meetings.stream() .sorted(Comparator.comparing(Meeting::getPost) .thenComparing(Meeting::getEndTime) .thenComparing(Meeting::getCreateTime) ).collect(Collectors.toList()); Meeting last = null; for(Meeting elem : sorted) { boolean status = last == null || last.getEndTime().compareTo(elem.getBeginTime()) < 0; if(status) last = elem; elem.setAllowed(status); } return sorted; }
这段代码是按照会议发布者、结束时间和创建时间进行排序,并根据前一场会议的结束时间判断当前会议是否可以被允许举行。具体实现中,它首先按照上述规则对会议列表进行排序,然后使用变量last来记录上一场会议,并且根据上一场会议的结束时间和当前会议的开始时间判断当前会议是否可以被允许举行。如果上一场会议的结束时间早于当前会议的开始时间,则允许当前会议举行;否则,不允许当前会议举行。最后返回按照上述规则排序后的会议列表。
List<Map<String, Object>> resultList = resultMap.stream() .filter(map -> map.containsKey("rate")) .sorted(Comparator.comparing(map -> map.get("rate").toString(), Comparator.nullsLast(String::compareTo)).reversed()) .collect(Collectors.toList()); 无法解析 'Object' 中的方法 'get'
这个错误通常是因为在Java中使用了类型擦除的特性,导致无法识别具体类型,无法调用其中的方法。你可以尝试将代码中的Object改为具体的类型,或者使用泛型来解决此问题。例如,如果你知道Map中的value都是String类型,那么可以将Object改为String。如果不确定value的类型,可以使用泛型来解决此问题,例如使用Map<String, ? extends Object>。
阅读全文