现有一个List<User> 数据集合,其中User类有属性exameID,userName,scoff等属性;请使用java8实现代码,将List<User> 装换成Map<exameID, Map<userName, User>>
时间: 2023-02-11 13:20:34 浏览: 133
使用 Java 8 可以使用 `stream()` 和 `collect()` 方法来实现将 List<User> 转换为 Map<exameID, Map<userName, User>>。
示例代码如下:
```
List<User> users = ...;
Map<Integer, Map<String, User>> map = users.stream().collect(
Collectors.groupingBy(User::getExameID,
Collectors.toMap(User::getUserName, Function.identity()))
);
```
说明:
- `Collectors.groupingBy(User::getExameID)`: 将 User 对象按照 exameID 分组。
- `Collectors.toMap(User::getUserName, Function.identity())`: 将分组后的 User 对象按照 userName 转换为 Map。
若要更改其他属性作为 key,可以替换 User::getExameID 和 User::getUserName 为相应的属性。
阅读全文