使用HashMap将整数映射到列表

时间:2018-08-17 08:08:26

标签: java string list hashmap

我编写了以下代码,将一个键与一个字符串列表相关联。当我显示它时,键“ 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);

1 个答案:

答案 0 :(得分:0)

问题是您一直使用列表l,因此实际上项目2和4都指向同一列表。

这将起作用:

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);
List<String>m=new ArrayList<String>();
m.add("treaaae");
m.add("tyret");
m.add("treeeqqq");
m.add("tyreqww");
hm.put(4, m);