【发布时间】:2019-01-24 05:39:25
【问题描述】:
我编写了以下代码来将键与字符串列表相关联。当我显示它时,键 '2' 的列表值被键 '4' 的值替换。不应该是 '2 ' 指向它被映射到的值?
Map<Integer,List<String>>hm=new TreeMap<Integer,List<String>>();
List<String>l=new ArrayList<String>();
l.add("tree");
l.add("tyre");
hm.put(2, l);
l.clear();
l.add("treaaae");
l.add("tyret");
l.add("treeeqqq");
l.add("tyreqww");
hm.put(4, l);
【问题讨论】:
-
hm.put(2, l)不会将您的列表复制到地图中。因此,当您稍后致电l.clear()时,您正在清除与地图中相同的列表。您可以这样做以使其工作:hm.put(2, new ArrayList<>(l));