qba*_*992 2 java collections java-8 java-stream
我有这样的集合:Map<Integer, List<MyObject>> collection
我想将整个列表映射MyObject到MyObjectDTO并返回带有映射列表的整个地图。
所以返回将是:
Map<Integer, List<MyObjectDto>> collectionWithDtos
最简单、最快的方法是什么?我已经检查了几种使用流的方法,但没有一个产生我预期的结果。谢谢
这是使用以下简单调用的一种方法:
Map<Integer, List<MyObjectDto>> mappedCollection = collection.entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
e -> e.getValue()
.stream()
.map(myObject -> new MyObjectDto()) // mapping here
.collect(Collectors.toList())));
Run Code Online (Sandbox Code Playgroud)
基本上,您希望将其收集到具有相同密钥的相同结构的映射中。流式传输条目集Set<Map.Entry<Integer, List<MyObject>>>并使用以下命令将其映射到新映射中Collectors.toMap(Function, Function):
entry -> entry.getKey()List),除了所有MyObject对象都映射到MyObjectDto,这可以使用另一个流执行。只要我们不知道要映射的对象的结构,就必须自己将其添加到带有注释的行中。
| 归档时间: |
|
| 查看次数: |
3408 次 |
| 最近记录: |