Java 将 Map<String,Set<String>> 转换为 Map<String,Set<Object1>> [关闭]
Posted
技术标签:
【中文标题】Java 将 Map<String,Set<String>> 转换为 Map<String,Set<Object1>> [关闭]【英文标题】:Java Convert Map<String,Set<String>> to Map<String, Set<Object1>> [closed] 【发布时间】:2021-04-26 00:58:08 【问题描述】:我想将Map<String,Set<String>>
转换为Map<String, Set<Object1>>
class Object1
String name;
我试过这种方法,但没有用。
Map<String, Set<Object>> result = map.entrySet().parallelStream()
.collect(
Collectors.groupingBy(x -> x.getKey(),
Collectors.mapping(x -> (Set<Object1>)Object1.builder().name(x.getValue()), Collectors.toSet())));
【问题讨论】:
向我们展示其中的一些“各种方法”。也许其中一个几乎是正确的,只需要一点点改变。也许您的方法完全错误,通过看到您的错误尝试,我们将能够解释您的思维过程有什么问题。 Map你几乎明白了。但是您可以将名称字段构造函数添加到您的 Object1 并尝试此代码
map.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey,
entry -> entry.getValue().stream()
.map(Object1::new)
.collect(Collectors.toSet())));
【讨论】:
【参考方案2】:这可以在toMap
collector 的帮助下非常简单地完成:
Map<String, Set<Object1>> newMap = map.entrySet()
.stream() // or parallelStream()
.collect(Collectors.toMap(
Map.Entry::getKey,
e -> e.getValue()
.stream()
.map(s -> Object1.builder().name(s).build())
.collect(Collectors.toSet())
));
【讨论】:
以上是关于Java 将 Map<String,Set<String>> 转换为 Map<String,Set<Object1>> [关闭]的主要内容,如果未能解决你的问题,请参考以下文章