在Armap中存储Arraylist

时间:2016-02-07 07:35:32

标签: java arraylist hashmap

我正在尝试使用put方法在 hashmap 中存储 arraylist 。我会在下一步中清除列表,以便在下一次迭代中添加下一组值。清除列表后,地图中的值也会被清除。虽然我在清除它之前已将列表放在地图中。

HashMap map=new HashMap();
ArrayList list=new ArrayList();
list.add("value1");
list.add("value2");
map.put(key,list);
list.clear();
system.out.println("map");
  

sysout打印{key = []}

有人请告诉我如何坚持hashmaphash地图。

2 个答案:

答案 0 :(得分:1)

您在ArrayList中引用了Map,因此当您清除该列表时,Map中的列表也会被清除(因为它是相同的列表)。< / p>

如果您要初始化另一个列表,则应创建一个新的ArrayList,而不是清除您添加到地图中的列表。

HashMap map=new HashMap();
ArrayList list=new ArrayList(); // create first list
list.add("value1");
list.add("value2");
map.put(key1,list); // put first list in map
list=new ArrayList(); // create second list
list.add("value3");
map.put(key2,list); // put second list in map
...

答案 1 :(得分:1)

您将整个列表作为哈希中的元素,当您清除列表时,哈希中唯一的值是空列表。