Java中一个map是key是学生的id value是学生对象 用stream流转化一个新map key是学生学号 value是学生姓名
时间: 2024-02-05 22:13:40 浏览: 65
可以使用Java 8中的Stream API的map()和collect()方法来实现这个转化过程。下面是一个示例代码:
```
Map<Integer, Student> studentMap = new HashMap<>();
// 假设已经将学生信息加入到了 studentMap 中
Map<String, String> studentNumberToNameMap = studentMap.entrySet()
.stream()
.collect(Collectors.toMap(
entry -> entry.getValue().getStudentNumber(),
entry -> entry.getValue().getName()));
```
上述代码中,我们首先创建了一个存储学生信息的Map对象 `studentMap`,其中key是学生的id,value是学生对象。
然后使用`entrySet()`方法获取到Map中所有的键值对,使用`stream()`方法将其转化为Stream对象。
接下来使用`map()`方法将每个键值对转化为一个新的键值对,其中新的key是学生的学号,新的value是学生的姓名。
最后使用`collect()`方法将所有的键值对收集到一个新的Map对象 `studentNumberToNameMap` 中,并返回该对象。
阅读全文