java - 帮助java HashMap

标签 java hashmap

谁能解释一下下面的代码中发生了什么,以及它是如何以 36 结尾的?

谢谢

编辑 由 Amir Rachum

public class HashMap2009 {
    public static void main (String[] args) {
        Map<String, Integer> myMap2009 = 
            new HashMap<String, Integer>();
        myMap2009.put("one", new Integer(1));
        myMap2009.put("three", new Integer(3));
        myMap2009.put("five", new Integer(5));
        myMap2009.put("seven", new Integer(7));
        myMap2009.put("nine", new Integer(9));
        System.out.println(oddOne(myMap2009));
    }
    private static int oddOne(Map<String, Integer> myMap2009) {
        if (myMap2009.isEmpty())
            return 11;
        else {
            Set<String> st = myMap2009.keySet();
            String key = st.iterator().next();
            int num = myMap2009.get(key);
            myMap2009.remove(key);
            return num + oddOne(myMap2009);
        }
    }
}

最佳答案

这是一个简单的例子 recursion ,这会导致将映射中的所有键一一相加,当映射为空时,它会再添加 11。总计为 36。

关于java - 帮助java HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2970274/

相关文章:

java - Eclipse 中是否已经安装了 WindowBuilder Pro?

java - jackson JsonNode 到带有排序键的字符串

java - 如何使用 hibernate 持久化 HashMap

java - 我可以有一个没有键的非空 HashMap 吗?

Java Bean - 通过原型(prototype)范围需要相同的对象

java - 如何从网页上的链接部署JFrame接口(interface)?

java - 为什么不能在 'if statement' 之外访问 java 中 'if statement' 内部的值?

java - 如何让 RetryAdvice 为 KafkaProducerMessageHandler 工作

java - 如何使用 Lambda 表达式填充 HashMap

java - 如何获得hashmap中的两个最大值