这只是我代码的基本表示:
所以我的循环会生成一堆散列图,每个散列图的关键字为“x”,值等于i。每次传递后,地图都会被添加到列表中。
List<HashMap> list = new ArrayList<HashMap>();
for (int i = 1; i <= counter; i++) {
HashMap map = new HashMap();
map.put("x", i);
list.add(new HashMap(map));
}
所以,如果我打印出我的清单,如果counter = 5
:(我期待1 2 3 4 5)
1
5
5
5
5
我怀疑是某种引用错误?如果是这样,为什么第一个值1而不是5?
编辑:打印代码没有问题。我将每个地图打印到控制台,然后将其添加到列表中,并且所有地图看起来都很好。
然后当我打印列表时......它们都显示相同的值。
答案 0 :(得分:1)
ArrayList <HashMap<String, Integer>> list = new ArrayList<HashMap<String,Integer>>();
int counter =5;
for (int i = 1; i<=counter;i++){
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("x", i);
list.add(map);
}
System.out.println(list);
直接从控制台