Collections 转换地图<;整数,长>;到整数数组
有人能告诉我我做错了什么吗Collections 转换地图<;整数,长>;到整数数组,collections,java-8,Collections,Java 8,有人能告诉我我做错了什么吗p.getVote(),并且集合计数逻辑返回Long,但我正在尝试使我的最终输出成为一个整数数组 Map<Integer, Long> counters = iqr.getQgagueUniqueVotes().stream() .collect(Collectors.groupingBy(p -> ((int)p.getVote()),
p.getVote()
,并且集合计数逻辑返回Long,但我正在尝试使我的最终输出成为一个整数数组
Map<Integer, Long> counters = iqr.getQgagueUniqueVotes().stream()
.collect(Collectors.groupingBy(p -> ((int)p.getVote()),
Collectors.counting()));
Collection<Long> values = counters.values();
long[] targetArray = values.toArray(new Long[values.size()]);
将
targetArray
数组的类型更改为Long
类型:
Long[] targetArray = values.toArray(new Long[values.size()]);
或者创建一个值流并映射到一个类型long
,然后收集到一个数组
long[] targetArray = values.stream().mapToLong(Long::longValue).toArray();
您的问题只是将
Map
转换为long[]
?然后,您可能应该使用一些硬编码数据替换基于stream语句的初始化(这也取决于未显示的变量)。另请参见:。类似:我建议使用.toArray(新长[values.size()])
而不是.toArray(新长[0])
的模式。
long[] targetArray = values.stream().mapToLong(Long::longValue).toArray();