HashMap Iterator/ForEach loop



只是我得到的一个关于HashMaps的快速问题。基本上我有两个字符串。两者在每个字符串中都有一定数量的相似单词。下面的 HashMap 方法允许我计算某个单词在每个句子中出现的次数。我的问题是在主方法中返回此方法。哈希映射方法如下:

public HashMap<String, Integer> getWordCounts(){
    HashMap<String, Integer> map = new HashMap<String, Integer>();
    for (int i = 0; i < this.getWordArray().length; i++){
        String key = getWordArray()[i];
        Integer count = map.get(key);
        if(count == null){ 
            count = 1;
        }else{
            count++; 
        }   
        map.put(key, count);
    }
        return map;
}

这就是我到目前为止得到的退货方法。

        HashMap<String, Integer> hashMapAdd = map.getWordCounts();
    for(HashMap.Entry <String, Integer> entry : plato.entrySet()){
        System.out.println(entry.getKey()+ "," + entry.getValue());
    }

我的退货方法是否正确?我觉得我走错了方向。

谢谢大家!

除了函数的逻辑(我没有分析过),关于你问的...
是的,这种方法完全可以像这样在 Java 中构造和返回 HashMap,当我在 C++ 上工作了 2 年后开始使用 java 时,我有时也会感到困惑,但比我理解在 java 中返回本地对象是完全可以的,因为 JVM 的垃圾收集器处理使用这种技术C++中可能发生的问题。现在,你得到了hashmap,要迭代和打印hashmap,只需使用这样的循环:

for(String key:hashMapAdd.keySet())
     System.out.println(key+ "," + hashMapAdd.get(key));

至少对我来说,这不那么令人困惑和容易。有关HashMap的详细信息,请访问:https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

PS:我假设你的代码正在编译(你没有抱怨任何编译错误),因为行map.getWordCounts();看起来很可疑,我假设这种方法在某个名为map的类中。但是在这种情况下,您将无法制作带有名称映射的哈希映射,您需要查看为什么在此代码行中使用map。

相关内容

  • 没有找到相关文章

最新更新