java8中list转map并排序
时间: 2023-10-25 09:13:27 浏览: 189
假设你有一个`List`对象,其中包含`Person`对象,每个`Person`对象都有一个唯一的`id`属性和一个`name`属性。现在你想将这个`List`转换为一个`Map`,其中`id`属性作为键,`Person`对象本身作为值,并按照`name`属性对Map进行排序。可以按照如下方式实现:
```java
List<Person> personList = ... // 假设这是你的Person对象列表
Map<Integer, Person> personMap = personList.stream()
.collect(Collectors.toMap(Person::getId, Function.identity()))
.entrySet().stream()
.sorted(Map.Entry.comparingByValue(Comparator.comparing(Person::getName)))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new));
```
上述代码使用Java 8中的`Stream` API先将`List`转换为`Map`,然后使用`sorted`方法根据`Person`对象的`name`属性排序,并最终将结果收集到`LinkedHashMap`中以保留排序顺序。
阅读全文