Java 这个代码能短一点吗 Map hash=newhashmap(); for(字符串s:dict){ hash.compute(s.substring(2)), (k,v)->{if(v==null){ 返回新的ArrayList(Arrays.asList); } 否则{ v、 添加(s); } 返回v; }); }
有没有办法让计算部分更干净?add方法不返回列表,它使代码非常长。您能试试吗 如果dist一个集合Java 这个代码能短一点吗 Map hash=newhashmap(); for(字符串s:dict){ hash.compute(s.substring(2)), (k,v)->{if(v==null){ 返回新的ArrayList(Arrays.asList); } 否则{ v、 添加(s); } 返回v; }); },java,dictionary,Java,Dictionary,有没有办法让计算部分更干净?add方法不返回列表,它使代码非常长。您能试试吗 如果dist一个集合 Map<String, List<String>> hash = new HashMap<String, List<String>>(); for (String s: dict){ hash.compute(s.substring(2)), (k, v)-> { if (v == null){
Map<String, List<String>> hash = new HashMap<String, List<String>>();
for (String s: dict){
hash.compute(s.substring(2)),
(k, v)-> { if (v == null){
return new ArrayList<>(Arrays.asList(s));
}
else{
v.add(s);
}
return v;
});
}
Map hash=dict.stream().collect(收集器.groupingBy(o->o.substring(2));
或者如果dist数组
Map<String, List<String>> hash = dict.stream().collect(Collectors.groupingBy(o -> o.substring(2)));
Map collect=Stream.of(dist.collect)(收集器.groupingBy(o->o.substring(2));
Roma的答案很可能是现在有了streams之后最惯用的Java语言
如果您想保持与当前拥有的结构相似,您可以使用:
Map<String, List<String>> collect = Stream.of(dist).collect(Collectors.groupingBy(o -> o.substring(2)));
Map hash=newhashmap();
for(字符串s:dict){
computeIfAbsent(s.substring(2),k->newArrayList()).add(s);
}
我们猜猜这是什么语言…?另外:谢谢,答案真的很有帮助。这种方式非常干净整洁。谢谢,当我投票给你的答案时,它说:“谢谢你的反馈!声誉低于15的人所投的票会被记录下来,但不会改变公开显示的帖子分数。”
Map<String, List<String>> hash = new HashMap<>();
for (String s: dict) {
hash.computeIfAbsent(s.substring(2), k -> new ArrayList<>()).add(s);
}