gpt4 book ai didi

java - 将列表映射到 map 中的 DTO - java

转载 作者:行者123 更新时间:2023-12-01 23:08:23 24 4
gpt4 key购买 nike

我有这样的 Collection :Map<Integer, List<MyObject>> collection我想映射 MyObject 的整个列表至 MyObjectDTO并返回带有映射列表的整个 map 。

所以返回将是: 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())));

基本上,您希望将其收集到具有相同键的相同结构的映射中。流式传输条目集 Set<Map.Entry<Integer, List<MyObject>>>并使用 Collectors.toMap(Function, Function) 将其映射到新 map 中其中:

  • key 是同一个 key :entry -> entry.getKey()
  • 值是相同的值 ( List ),除了所有 MyObject对象映射到 MyObjectDto ,这可以用另一个流来执行。

只要我们不知道要映射的对象的结构,就得自己加上注释行。

关于java - 将列表映射到 map 中的 DTO - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70376736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com