Java流简化为映射
我得到了字符串的数组列表,如何将它们减少到哈希映射 输入:Java流简化为映射,java,java-stream,Java,Java Stream,我得到了字符串的数组列表,如何将它们减少到哈希映射 输入:[a,b,a,a,c,x] 输出:{(a:3)、(b:1)、(c:1)、(x:1)} 还有,我找了这个。我需要使用reduce而不是像其他问题那样使用频率计数,因为我的问题是一个简化的实际任务。谢谢@HadiJ的回答 Map<String,Integer> result = Arrays.stream(str) .reduce(new HashMap<>(), (hashMap, e) -> {
[a,b,a,a,c,x]
输出:{(a:3)、(b:1)、(c:1)、(x:1)}
还有,我找了这个。我需要使用
reduce
而不是像其他问题那样使用频率计数,因为我的问题是一个简化的实际任务。谢谢@HadiJ的回答
Map<String,Integer> result = Arrays.stream(str)
.reduce(new HashMap<>(), (hashMap, e) -> {
hashMap.merge(e, 1, Integer::sum);
return hashMap;
},
(m, m2) -> {
m.putAll(m2);
return m;
}
);
Map result=Arrays.stream(str)
.reduce(新的HashMap(),(HashMap,e)->{
merge(e,1,Integer::sum);
返回hashMap;
},
(米,平方米)->{
m、 普塔尔(m2);
返回m;
}
);
它必须是一个副本。你搜索得有多努力?@ArvindKumarAvinash不,我需要使用reduce,而不是frequency@ejbñЛббббббббббббббббббббббб,(m,m2)->{m.putAll(m2);返回m;})但是其他解决方案更具可读性和简洁性。@HadiJ谢谢,这不是关于可读性的,我简化了我的实际任务,这就是为什么我要问reduce。再次感谢你。