list stream排序降序
时间: 2025-01-02 07:36:29 浏览: 52
### Java List Stream API 实现降序排序
对于 `List` 中的对象按特定字段(如时间)进行降序排序,在 Java 8 及更高版本里可以借助于流(Stream)API 和 `Comparator.comparing()` 方法来完成。当目标是基于对象的时间属性执行此操作时,代码结构如下所示:
```java
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
class Event {
private LocalDateTime time;
public Event(LocalDateTime time) {
this.time = time;
}
public LocalDateTime getTime() {
return time;
}
}
public class Main {
public static void main(String[] args) {
List<Event> events = Arrays.asList(
new Event(LocalDateTime.of(2023, 1, 1, 12, 0)),
new Event(LocalDateTime.of(2023, 1, 2, 9, 0))
);
List<Event> sortedEventsDesc = events.stream()
.sorted(Comparator.comparing(Event::getTime).reversed())
.collect(Collectors.toList());
sortedEventsDesc.forEach(event -> System.out.println(event.getTime()));
}
}
```
上述代码展示了如何创建一个事件列表并依据其时间戳成员变量对其进行降序排列[^1]。
为了处理更复杂的情况——例如,当元素本身并不提供自然顺序定义时,则需显式指定比较器逻辑。这可通过向 `sorted` 提供自定义的 `Comparator` 来达成,正如下面的例子所展示那样[^3]。
阅读全文
相关推荐


















