import java.util.HashMap;
import java.util.Map;
public class Test1 {
public static void main(String[] args) {
Map map = new HashMap();
Map ma = map;
for (int i = 0; i < 3; i++) {
Map<String, String> map2 = new HashMap<String, String>();
map2.put("sss", "呵呵");
ma.put(i, map2);
ma = map2;
}
System.out.println(map);
System.out.println(ma);
}
}
上面的代码中 没有直接操作map 但是结束后map 得到一个链表值
根据下面的回答想清楚了 最近头有点晕晕的 ma 最开始确实是和map是同一个对象 但是在循环中不停的在改变,每次循环结束后都指向了map2 ,每次循环中map2都是一个新对象,第一次循环中在ma中put进去了一个map,但是在第二次循环的时候 ma就是最先被put进去的map2,所以map的值在不停的改变,得到最后的链表,谢谢下面的各位的回复