Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java servlet ArrayList和HashMap List data=new ArrayList(); Map item=newhashmap(); data.clear(); item.clear(); int i=0; 而(i_Java_Data Structures_Map_Hashmap - Fatal编程技术网

Java servlet ArrayList和HashMap List data=new ArrayList(); Map item=newhashmap(); data.clear(); item.clear(); int i=0; 而(i

Java servlet ArrayList和HashMap List data=new ArrayList(); Map item=newhashmap(); data.clear(); item.clear(); int i=0; 而(i,java,data-structures,map,hashmap,Java,Data Structures,Map,Hashmap,,因为您正在重复更改一个哈希映射。请在将其添加到列表时尝试创建副本 List<Map<String, Object>> data = new ArrayList<Map<String, Object>>(); Map<String, Object> item = new HashMap<String, Object>(); data.clear(); item.clear(); int i = 0; while (i &l

,因为您正在重复更改一个哈希映射。请在将其添加到列表时尝试创建副本

List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
Map<String, Object> item = new HashMap<String, Object>();

data.clear();
item.clear();
int i = 0;
while (i < 5){
   item.put("id", i);
   i++;
   out.println("id: " + item.get("id"));
   out.println("--------------------------");
   data.add(item);
}
for(i=0 ; i<5 ; i++){
   out.println("print data[" + i + "]" + data.get(i));
}

我想你是在问为什么HashMap中只存储了一个值。如果是这样的话:

每次调用
Map.put(“id”,i)
都会覆盖上一个Key,Value对,其中Key=“id”。在Map数据结构中,键是唯一的。因此,项只有一个Key,Value对


如果你问为什么列表中的每个元素都是相同的,正如Nikita所说,那么每次你都会将完全相同的HashMap存储到列表中。

这是因为你只处理该项的一个实例

您必须在everywhile循环中实例化该项,如下所示

data.add(new HashMap(item));
while(i<5){
item=newhashmap();
项目.付诸表决(“id”,i);
i++;
out.println(“id:+item.get(“id”));
out.println(“-----------------------------------”);
数据。添加(项目);
}
while (i < 5){
    item = new HashMap<String, Object>();
    item.put("id", i);
    i++;
    out.println("id: " + item.get("id"));
    out.println("--------------------------");
    data.add(item);
}