当前位置: 首页 > 知识库问答 >
问题:

如何使用Java8流从hashmap[duplicate]获取值

昝卓
2023-03-14

我有一个hashmap,看起来像这样:

Map<String, ImageRecipeMap> contentIdToImageIdsMap = new HashMap<>();

我的ImageRecipeMap对象如下所示:

public class ImageRecipeMap {

    private ContentType contentType;

    private List<String> imageIds;

    public List<String> getImageIds() {
        return imageIds;
    }

    public void setImageIds(List<String> imageIds) {
        this.imageIds = imageIds;
    }

    ...
}

我想获取所有ImageID列表,并使用Java8流创建一个总的ImageID列表。到目前为止,这就是我所拥有的,但我的collect上似乎有一个编译错误:

List<String> total = contentIdToImageIdsMap.values().stream()
           .map(value -> value.getImageIds())
           .collect(Collectors.toList());

共有1个答案

姚子石
2023-03-14

您的解决方案返回列表

    List<String> total = contentIdToImageIdsMap.values().stream()
           .flatMap(value -> value.getImageIds().stream())
           .collect(Collectors.toList());

。flatMap()更改

 类似资料:
  • 如何用Java解析JSON文件中的数据?

  • 问题内容: 我正在用Java写一个简单的编辑文本。当用户打开文件时,将在中打开文件。我执行以下操作来保存打开的文件: 将从何处接收值,例如:。 我有一堂课: 现在,在此类中,我需要获取存储在中的值。我怎样才能做到这一点? 问题答案: 要从地图获取所有值: 要从地图中获取所有条目,请执行以下操作: Java 8更新: 处理所有值: 要处理所有条目:

  • 为了最大限度地利用java8流和Spring4,我在来自Springs jsdbRestTem板的JDBC结果集上使用了流API,如下所示(代码缩短并简化): 这似乎很有效。客户端可以像这样使用流Api,而不用担心jdbc类 但是,当我重构(尝试将流提供给客户端方法)时,像这样: 我明白了 因此,数据似乎只能在方法。是否有一种干净的方法可以绕过这个问题,返回来自DB的元素的惰性流?假设具体化结果和

  • 我有一个映射“m”和一个列表“l”,现在我想从那个映射“m”中获取值,使用“l”中可用的键列表。我想用Java 8流的概念,任何人都可以在这方面提供帮助。 我编码打印这些值,但我需要的是将值放入列表中 list.stream().foreach(s->{system.out.println(map.get(s));});

  • 例如: 如何在Java8 Stream中实现上述代码?