以下程序维护 2 个数据结构,名为:
map of type HashMap
map_1 also of type HashMap
开头map
是key : 1
和value : suhail
。然后这个映射被插入到map_1
key20
中。
再次map
填充了key : 1
另一个value : CSE
. 这张地图再次插入到map_1
.
import java.util.*;
class KeyTest {
public static void main(String args[]) {
Map<Integer,String> map = new HashMap<Integer,String>();
Map<Integer,Object> map_1 = new HashMap<Integer,Object>();
map.put(1,"suhail");
map_1.put(20,map);
map.put(1,"CSE");
map_1.put(21,map);
Set<Integer> keys = map_1.keySet();
Iterator i = keys.iterator();
while(i.hasNext()) {
System.out.println(map_1.get((Integer)i.next()));
}
}
}
map_1
当我打印值时,这就是我得到的:
{1=CSE}
{1=CSE}
但这不是我所期望的。据我所知,这是程序应该运行的方式:
[1,suhail]--> map
[20,[1,suhail]]---> map_1
[1,CSE]--> map (A replace, because of the same keys)
[21,[1,CSE]]--->map_1
所以输出应该是:
[1,suhail]
[1,CSE]
谁能解释一下,为什么我没有得到这个输出