public static void main(String[] args) {
Map<String, List<String>> map = new HashMap<>();
map.put("str1", Arrays.asList("aa","bb"));
System.out.println(map.get("str1"));
map.get("str1").add("cccc"); // 1
System.out.println(map.get("str1"));
List<String> list = new ArrayList<>(map.get("str1"));
list.add("dddd"); // 2
map.put("str1",list);
System.out.println(map.get("str1"));
map.get("str1").add("cccc"); // 3
System.out.println(map.get("str1"));
}
目前这段代码执行到 1 会报错;
但是把1注释掉就能正常运行(1和3是一样的),不知道为什么先2再3 就没问题了
用的java8,是因为一开始的map里的value和后来更新过的有什么不一样???