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

如何将Stream-Stream转换为HashMap数组HashMap[]?

巴帅
2023-03-14

我是Java 8流的新手。请提供建议,如何转换流<代码>流

例如,我在代码中有一些流:

Stream<String> previewImagesURLsList = fileNames.stream();

Stream<HashMap<String, Object>> imagesStream = previewImagesURLsList
    .map(new Function<String, HashMap<String, Object>>() {
        @Override
        public HashMap<String, Object> apply(String person) {
            HashMap<String, Object> m = new HashMap<>();
            m.put("dfsd", person);
            return m;
        }
    });

我怎么能做这样的事

HashMap<String, Object>[] arr = imagesStream.toArray();

?

对不起,我的英语不好。

共有1个答案

曾光誉
2023-03-14

以下方法应该有效。不幸的是,您必须抑制未经检查的警告。

@SuppressWarnings("unchecked")
HashMap<String, Object>[] arr = imagesStream.toArray(HashMap[]::new);

表达式HashMap[]:new是数组构造函数引用,它是一种方法引用。方法引用提供了实现功能接口的替代方法。也可以使用lambda表达式:

@SuppressWarnings({"unchecked", "rawtypes"})
HashMap<String, Object>[] array = stream.toArray(n -> new HashMap[n]);

在Java8之前,您可能会为此使用匿名内部类。

@SuppressWarnings({"unchecked", "rawtypes"})
HashMap<String, Object>[] array = stream.toArray(new IntFunction<HashMap[]>() {
    public HashMap[] apply(int n) {
        return new HashMap[n];
    }
});
 类似资料:
  • 我知道如何从->“转换”一个简单的Java,即: 现在我想用一张地图做基本相同的操作,即: 解决方案不应局限于->。就像上面的示例一样,我希望调用任何方法(或构造函数)。

  • 我从FireStore的一个字段中访问值,但它是一个列表形式,我需要将其转换为一个流

  • 我有和如下代码所示: 我尝试用< code>HashMap值替换该字符串,但这不起作用,因为< code>test是最终的,不能在< code>forEach的主体中重新分配。 那么有没有用Java 8 Stream API将< code>String替换为< code>HashMap的解决方案呢?

  • 本文向大家介绍Java中将流(Stream)转换为Set,包括了Java中将流(Stream)转换为Set的使用技巧和注意事项,需要的朋友参考一下 首先,设置一个流(Stream)- 现在,声明一个Set并将此流转换为set- 示例 以下是在Java中将Stream转换为Set的程序- 输出结果

  • 我正在尝试将对象数组转换为HashMap。我只有ES6的某些部分可用,我也不能使用。 数组中的对象非常简单,例如。我需要按对它们进行排序。现在我需要一个“字典”,按iso->保存排序。 我已经试过了(从这里(所以)) 但是原来是一个,索引以开始。希望有一个小东西我没有看到。但是目前我的脑子里想的是如何将一个简单的数组转换成一个类似HashMap的对象。也许? 我还应该注意,我使用的是,我以前在没有

  • 我从Java开始,希望将查询转换为Lambda中的SQL或Java 8中的Stream。 按照下面的查询操作。 我创建了下面带有getters和setters的Correpondencia类: 我创建了一个列表: 现在我想根据下面的查询用Lambda或Stream过滤课程: 这将返回m1的最大值,按entidadeOrigem的项目分组: 一位同事给了我以下代码: 但是,它只返回entidadeO