stream中自定义排序
在java中使用stream时,如果需要自定义排序规则,可以通过以下方式实现:
给定的示例中,要对obj对象集合按time属性排序,其中时间区间8:00~23:00优先排在0:00~7:00之前。
方法一:手动排序
for (int i = 0; i < 8; i++) {
for (int index = 0; index < list.size(); index++) {
if (list.get(index).gethour() == i) {
obj remove = list.remove(index);
list.add(remove);
}
}
}此方法通过循环将指定时间范围内的对象移动到集合的前面。
立即学习“Java免费学习笔记(深入)”;
方法二:使用comparator排序
list.sort((o1, o2) -> o2.gethour() - o1.gethour());
此方法使用comparator接口自定义排序规则,按照给定属性的差值进行排序,达到指定时间优先排队的目的。
排序完成后,输出结果如下:
23 22 21 ... 7 0 1 ...










