HashMap 的一个奇怪的问题

最近我们生产环境上出现一个比较奇怪的现象,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的键值对都一样,取出来的当然也都一样了