为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Java 流展平地图值

如何使用 Java 流展平地图值

慕尼黑的夜晚无繁华 2023-05-17 14:56:01
我是 Java 流的新手,手头有问题。我有一张这样的地图:Map<String, List<String>> specialProductsMap我想将映射值展平为一个集合,该集合包含specialProductsMap. 我如何使用 Java Streams 执行此操作?
查看完整描述

3 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

您可以使用flatMap操作员来完成这件事。这是它的样子。

Set<String> valueSet = specialProductsMap.values().stream()
    .flatMap(List::stream)
    .collect(Collectors.toSet());


查看完整回答
反对 回复 2023-05-17
?
波斯汪

TA贡献1811条经验 获得超4个赞

首先从地图中获取值列表,然后像这样使用流 api

Set<String> setOfString = specialProductsMap.values().stream().flatMap(list->list.stream())
            .collect(Collectors.toSet());

或者像这样使用方法参考

Set<String> setOfString = specialProductsMap.values().stream().flatMap(List::stream)
            .collect(Collectors.toSet());


查看完整回答
反对 回复 2023-05-17
?
PIPIONE

TA贡献1829条经验 获得超9个赞

您必须流传您的价值观:

Stream<List<String>> myStream = specialProductsMap.values().stream();

然后压平它:

Stream<String> myData = myStream.flatMap(List::stream);

然后收集在一个集合中:

Set<String> = myData.collect(Collectors.toSet());


查看完整回答
反对 回复 2023-05-17
  • 3 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信