最近我们生产环境上出现一个比较奇怪的现象,hashmap的get方法取的值是上一个hashmap的值,伪代码如下:
....
for(int i=0;i<arraylist.size();i++){
HashMap hashmap=(HashMap)arraylist.get(i);
List lst1= hashmap.get("xxx1");
List lst2= hashmap.get("xxx2");
hashmap.put("id","xxxxxx");
.....
String id=hashmap.get("id");
}
.....
这个id的值有时候是上个循环的产生的id,这个问题很纳闷,有人知道原因吗?
用的是jdk1.4.2
应该与hashMap的异步是没有关系的!有两种方案:1.改成hashTable试试。2.将他们的所有键值打印出来并且重复 试一试..看看他大概到什么地方出问题...
[quote]hashmap.put("id","xxxxxx");
.....
String id=hashmap.get("id"); [/quote]
每次循环放到hashmap的键值对都一样,取出来的当然也都一样了