【发布时间】:2015-05-02 05:42:07
【问题描述】:
如标题中所述,我们如何才能做到这一点?我觉得它应该类似于树遍历,但我不知道如何做到这一点。
Map<Integer, Object> map = new HashMap<>();
map.put(1, 1);
map.put(2, 2);
map.put(3, new HashMap<Integer, Object>());
Map<Integer, Object> m1 = (Map<Integer, Object>)map.get(3);
m1.put(4, 4);
m1.put(5, new HashMap<Integer, Object>());
m1.put(6, 6);
Map<Integer, Object> m2 = (Map<Integer, Object>)m1.get(5);
m2.put(8, 8);
m2.put(9, 9);
map.put(7, new HashMap<Integer, Object>());
在这个例子中,前两个“值”是两个 Integer,第三个“值”是一个嵌套的 HashMap,它包含两个 Integer 和一个“更深层次”的嵌套 HashMap。关于key 7,我想说“value”也可以是一个空的HashMap——因为这是一道面试题,我猜这种“empty value”的可能性可能会影响next()或者hasNext()的实现?
【问题讨论】:
-
事情很简单,直到您尝试解决它们,付出努力并且确信,您会想出一些逻辑。分享您的努力,我们会在您遇到困难时提供帮助。
-
HashMap包含key-value对。那么你如何在你的问题中定义一个元素?是Integer是key还是HashMap是value? -
对不起,这里的元素我的意思是一个值..
-
更多细节:对于嵌套 HashMap 中的每个键值对,key 总是一个 Integer,并且 value 可以是 1) Integer,2) 另一个嵌套 HashMap,或 3) 空哈希映射。 --- 如果您继续调用 next() 函数,迭代器的目的是输出所有整数“值”。 --- 希望这个澄清是清楚的......
-
你怎么能声明这样一个
HashMap?你能发布你如何声明HashMap吗?此外,当您回答任何评论时,请使用 @立即通知该人。