所以我已经完成了一个程序,并有帮助建立它/与另一个人一起工作。我了解每一行代码除了一部分以外的所有程序。这是代码:这段代码的功能不完全清楚吗? (包括Set,HashMap和.keySet())
Set<String> set1 = firstWordGroup.getWordCountsMap().keySet();
Map<String, Integer> stringIntegerMap1 = set1.stream().collect(HashMap::new,
(hashMap, s) -> hashMap.put(s, s.length()), HashMap::putAll);
stringIntegerMap1.forEach((key,value) ->System.out.println(key + " : "+value));
一些背景资料:
getWordCut是看起来像这样的方法:)
公众的HashMap getWordCountsMap({
HashMap<String, Integer> myHashMap = new HashMap<String, Integer>(); for (String word : this.getWordArray()) { if (myHashMap.keySet().contains(word)) { myHashMap.put(word, myHashMap.get(word) + 1); } else { myHashMap.put(word, 1); } } return myHashMap; }
firstWordGroup是一个存储一串单词的构造函数。
如果有人能够准确解释这段代码的作用以及它是如何做的,那么这将是有益的,谢谢。 P:我不知道是否提供整个程序来重现代码是相关的,所以如果你认为是这样的话,只需留下评论,然后我将编辑问题以便重现该程序。
我在我的答案中解释了'putAll'。收集器旨在允许单独的执行线程收集不同的元素,然后将它们合并。 putAll是将结果结合在一起的方法。正在合并的地图将具有不同的元素,因此将所有元素从一个元素转换为另一个元素正在有效地合并它们。 – sprinter
感谢您的解释,我认为我们大约在同一时间按下提交按钮,因为两个响应一起踢起来1谢谢。 –
是的,我怀疑我们都看到了每个人的答案,并想知道:-) – sprinter