jdk8 map根据value中的时间排序
时间: 2024-03-20 11:42:59 浏览: 120
JDK8通过Stream 对List,Map操作和互转的实现
5星 · 资源好评率100%
可以使用Java 8中的Stream API来实现根据Map中的value中的时间进行排序。具体实现步骤如下:
1. 将Map中的entry转换为List,通过Stream API进行排序;
2. 排序时,可以使用Comparator.comparing()方法指定按照value中的时间进行排序;
3. 最后将排序后的List转换回Map。
示例代码如下:
```java
import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MapSortByValueTime {
public static void main(String[] args) {
Map<String, LocalDateTime> map = new HashMap<>();
map.put("key1", LocalDateTime.of(2021, 1, 1, 10, 0));
map.put("key2", LocalDateTime.of(2021, 1, 2, 11, 0));
map.put("key3", LocalDateTime.of(2021, 1, 3, 12, 0));
// 根据value中的时间排序
List<Map.Entry<String, LocalDateTime>> sortedEntries = map.entrySet()
.stream()
.sorted(Comparator.comparing(Map.Entry::getValue))
.collect(Collectors.toList());
// 输出排序后的结果
for (Map.Entry<String, LocalDateTime> entry : sortedEntries) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
```
输出结果为:
```
key1: 2021-01-01T10:00
key2: 2021-01-02T11:00
key3: 2021-01-03T12:00
```
阅读全文