java 按时间排序List<Map<String, Object>> 中的 "出站时间" 进行排序 该字段可能为null, 时间格式为"yyyy-MM-dd HH:mm:ss" 降序
时间: 2024-03-09 20:48:21 浏览: 11
您可以使用Java 8的Stream API和Comparator来按照时间字段排序List<Map<String, Object>>。以下是示例代码:
```java
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
// 添加数据到list中
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
List<Map<String, Object>> sortedList = list.stream()
.filter(map -> map.get("出站时间") != null) // 过滤掉出站时间为null的Map
.sorted(Comparator.comparing(map -> LocalDateTime.parse((String)map.get("出站时间"), formatter)).reversed()) // 按照出站时间进行降序排序
.collect(Collectors.toList());
```
在代码中,我们首先创建一个DateTimeFormatter对象来解析时间字段。然后,我们使用Stream API的filter()方法过滤掉出站时间为null的Map,并使用sorted()方法按照出站时间进行排序。最后,我们使用collect()方法将排序后的结果收集到一个新的List中。
相关问题
java 按时间排序List<Map<String, Object>> 中的 "出站时间" 进行排序 该字段可能为null, 时间格式为"yyyy-MM-dd HH:mm:ss"
可以使用Java8的Stream API和Comparator来对List<Map<String, Object>>中的"出站时间"字段进行排序。具体实现代码如下:
```java
List<Map<String, Object>> list = ...; // 初始化List<Map<String, Object>>
// 对"出站时间"字段进行排序
List<Map<String, Object>> sortedList = list.stream()
.filter(map -> map.get("出站时间") != null) // 过滤出"出站时间"不为null的Map
.sorted(Comparator.comparing(map -> LocalDateTime.parse((String) map.get("出站时间"), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))) // 按时间排序
.collect(Collectors.toList());
// 输出排序后的List<Map<String, Object>>
sortedList.forEach(System.out::println);
```
上述代码中,使用了Java8的Stream API和Comparator,过滤出"出站时间"不为null的Map,并按时间格式解析"出站时间"字段,最后使用collect方法将排序后的Map收集到一个List中。
java 按时间排序List<Map<String, Object>> 中的出站时间
可以使用Java 8的Stream API和Comparator来对List<Map<String, Object>>进行按时间排序,示例代码如下:
```
List<Map<String, Object>> list = new ArrayList<>();
// 假设Map中出站时间的key为"departureTime"
list.stream().sorted(Comparator.comparing(m -> (LocalDateTime) m.get("departureTime"))).collect(Collectors.toList());
```
其中,Comparator.comparing()方法的参数为一个Function,这里使用Lambda表达式将Map中的"departureTime"值转换为LocalDateTime类型,然后进行比较排序。最后通过collect(Collectors.toList())方法将排序后的Stream转换为List返回。