Java int 数组到 HashMap<Integer, Boolean> 和 IntStream

标签 java java-stream

我需要对每个数组元素求平方,然后将一个条目插入到 hashmap 中,这个值作为键,true 作为值。我试过那样做,但我无法修复它。

int [] array = {3, 1, 4, 6, 5};

    HashMap<Integer, Boolean> map = IntStream.of(array)
            .map(x -> x*x)
            .collect(Collectors.toMap(p -> Integer.valueOf(p), Boolean.valueOf(true)));

最佳答案

您可以 box IntStream并继续 Stream<Integer> :

Map<Integer, Boolean> map = IntStream.of(array)
        .map(x -> x*x)
        .boxed()
        .collect(Collectors.toMap(p -> p, p -> Boolean.valueOf(true)));

请注意 Collectors.toMap返回 Map , 不是 HashMap .

关于Java int 数组到 HashMap<Integer, Boolean> 和 IntStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38252515/

相关文章:

java - 如何显示所有卡片布局

java - 如何解析文件

java - 长时间关机时如何处理servlet请求

java - 如何在java 8中展平列表

java - 在 Java 8 中从 Stream of Streams 中提取 Map<K, Multiset<V>>

java - 在 Java 8 流中捕获 UncheckedIOException

java - 从数据库中检索 ZIP - 如何使用索引对其进行优化

java - json序列化时排除字段

java - 这个 Stream 对象是创建无限的黑猩猩对象列表还是只创建一个黑猩猩对象?

java - 流式评估和惰性评估