我想要map的一个Id对应一个list,一个list中保存多条记录,我下面的代码问题在哪啊!... PListDetailModel pdm = (PListDetailModel)it.next();
if(map.containsKey(pdm.getPacklinecode()))
{ //如果已经存在这个数组,就放在这里
System.out.println("执行了多少次");
List pdmList = map.get(pdm.getPacklinecode());
pdmList.add(pdm);
}
else
{
List pdmList = new ArrayList(); //重新声明一个数组list
pdmList.add(pdm);
map.put(pdm.getPackingcode(), pdmList);
}
我最后读取的时候一个id只有一条记录...
if(map.containsKey(pdm.getPacklinecode()))
{ //如果已经存在这个数组,就放在这里
System.out.println("执行了多少次");
List pdmList = map.get(pdm.getPacklinecode());
pdmList.add(pdm);
}
else
{
List pdmList = new ArrayList(); //重新声明一个数组list
pdmList.add(pdm);
map.put(pdm.getPackingcode(), pdmList);
}
我最后读取的时候一个id只有一条记录...
for(int i=0;i<userList.size();i++)
{
Map oneMap;
oneMap=(Map)userList.get(i);
if (oneMap.get("uId").toString().equals(strUserId))
{
senderList.add(oneMap);
break;
}
}
原因是map检索key时需要判断两个对象的hashCode是否相同,在getPacklinecode())所对应的类重写hashCode()方法可以解决问题。