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