-1

这只是我的代码的基本表示:

所以我的循环将生成一堆哈希图,每个哈希图的键为“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?

编辑:打印代码没有问题。在将每个地图添加到列表之前,我将其打印到控制台,所有地图看起来都很好。

然后当我打印列表时......它们都显示相同的值。

4

1 回答 1

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);

直接从控制台

在此处输入图像描述

于 2013-04-21T12:15:43.503 回答