gpt4 book ai didi

要映射的 Java 8 int 数组

转载 作者:搜寻专家 更新时间:2023-11-01 01:12:02 25 4
gpt4 key购买 nike

我想将int array转换成

Map<Integer,Integer> 

使用 Java 8 流 API

int[] nums={2, 7, 11, 15, 2, 11, 2};
Map<Integer,Integer> map=Arrays
.stream(nums)
.collect(Collectors.toMap(e->e,1));

我想得到一个如下图,键是整数值,值是每个键的总数

map={2->3, 7->1, 11->2, 15->1}

编译器提示“不存在类型变量 T、U 的实例,因此 Integer 确认函数

感谢任何解决此问题的建议

最佳答案

您需要对 IntStream 进行装箱,然后使用 groupingBy 值来获取计数:

Map<Integer, Long> map = Arrays
.stream(nums)
.boxed() // this
.collect(Collectors.groupingBy(e -> e, Collectors.counting()));

或使用reduce作为:

Map<Integer, Integer> map = Arrays
.stream(nums)
.boxed()
.collect(Collectors.groupingBy(e -> e,
Collectors.reducing(0, e -> 1, Integer::sum)));

关于要映射的 Java 8 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56406621/

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