gpt4 book ai didi

java - 如何将流Stream>转为HashMap数组HashMap[]?

转载 作者:行者123 更新时间:2023-11-30 06:18:49 24 4
gpt4 key购买 nike

我是 Java 8 Streams 的新手。请指教,如何转换流Stream<HashMap<String, Object>>到 HashMap 数组 HashMap<String, Object>[]

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

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();

?

抱歉我的英语不好。

最佳答案

以下应该有效。不幸的是,您必须取消未检查警告。

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

表达式 HashMap[]::new 是一个数组构造函数引用,它是一种方法引用方法引用 提供了另一种实现功能接口(interface)的方法。您还可以使用 lambda 表达式:

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

在 Java 8 之前,您会为此目的使用匿名内部类

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

关于java - 如何将流Stream<HashMap<String, Object>>转为HashMap数组HashMap<String, Object>[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23951148/

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