java里面的赋值和引用是不同的,以后要详细总结一下!
看一个例子:
1 public static void main(String[] args) { 2 List<String> list = new ArrayList<String>() { 3 { 4 add("1"); 5 add("2"); 6 add("3"); 7 } 8 }; 9 Map<Long, List<String>> map = new HashMap<>(); 10 map.put(1L, list); 11 System.out.println("original list size = " + map.get(1L).size()); 12 list.add("abc"); 13 System.out.println("after add element, list size = " + map.get(1L).size()); 14 list.removeAll(list); 15 System.out.println("after remove all, list size = " + map.get(1L).size()); 16 }
程序的输出结果:
original list size = 3 after add element, list size = 4 after remove all, list size = 0
这里说明map在进行添加list的时候,对于list实例来说是一个引用。