stream流中的list按照时间排序
时间: 2023-10-01 07:08:37 浏览: 148
如果你想按时间对一个流中的列表进行排序,你可以使用Java 8中的Stream API,使用`sorted`方法对流中的元素进行排序。以下是一个示例代码:
```java
List<Object> list = ... // 获取要排序的列表
List<Object> sortedList = list.stream()
.sorted((o1, o2) -> {
// 比较o1和o2的时间戳,返回比较结果
// 假设o1和o2都有一个名为"timestamp"的时间戳属性
Long timestamp1 = (Long) ((Map<String, Object>) o1).get("timestamp");
Long timestamp2 = (Long) ((Map<String, Object>) o2).get("timestamp");
return timestamp1.compareTo(timestamp2);
})
.collect(Collectors.toList());
```
这段代码中,我们首先获取了要排序的列表,然后使用`stream`方法将列表转换为流。接着,我们使用`sorted`方法对流中的元素进行排序。`sorted`方法需要传入一个`Comparator`对象,该对象用于比较流中的元素。在这里,我们使用lambda表达式创建了一个`Comparator`对象,以比较每个元素的时间戳。最后,我们使用`collect`方法将排序后的元素收集到一个新的列表中。
阅读全文