public static void main(String[] args) {
Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put("1", null);
List<String> list1 = map.get("1");
if (list1 == null) {
list1 = new ArrayList<String>();
//map.put("1", list1);
}
System.out.println(map.get("1"));
}
上述代码,为什么必须添加注释的那一行代码。我的印象中 list1 拿出来后应该就是一个“指针”了啊,还需要在map中put回去吗?
ps:
放开这一句 map.put("1", list1); 打印:[ ]
注释掉这一句 map.put("1", list1); 打印:null
放开这一句 map.put("1", list1); 打印:[ ] 是因为ArrayList对象是没元素的,toString打印就是[]
注释掉这一句 map.put("1", list1); 打印:null 是因为list1指向的是null