IUn*_*own 6 java string list java-8 java-stream
我们有一张学生地图要记录Map<Student, StudentRecord>。
学生班如下:
Student {
String id;
String grade;
Int age;
}
Run Code Online (Sandbox Code Playgroud)
此外,我们还(List<String>)提供了学生 ID 列表。
使用 Java 流,过滤出 ID 存在于提供的列表中的学生的记录的最有效方法是什么?
预期结果是映射到 Id(String) 的过滤列表 - <Map<Id, StudentRecord>>
您可以流式传输一组条目:
map.entrySet().stream()
.filter(e -> list.contains(e.getKey()))
.collect(toMap(Map.Entry::getKey, Map.Entry::getValue));
Run Code Online (Sandbox Code Playgroud)
如果您还想将键映射到id字段,那么:
map.entrySet().stream()
.filter(e -> list.contains(e.getKey()))
.collect(toMap(e -> e.getKey().getId(), Map.Entry::getValue));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |