for (int i = 0;i < authvallist.size();i++)
{
group_auth=(Inter_group_auth)authvallist.get(i);
key = group_auth.getGroup_code();
if(authmap.containsKey(key)){
grouplist = authmap.get(key);
grouplist.add(group_auth);
System.out.println(grouplist.hashCode());
}else{
grouplist = new ArrayList<Inter_group_auth>();
System.out.println(grouplist.hashCode());
grouplist.add(group_auth);
authmap.put(key, grouplist);
}
}
/**---------------------对比的代码----------------
*/
for (int i = 0;i < authvallist.size();i++)
{
group_auth=(Inter_group_auth)authvallist.get(i);
key = group_auth.getGroup_code();
if(authmap.containsKey(key)){
grouplist.add(group_auth);
System.out.println(grouplist.hashCode());
}else{
grouplist = new ArrayList<Inter_group_auth>();
System.out.println(grouplist.hashCode());
grouplist.add(group_auth);
authmap.put(key, grouplist);
}
}
下面的这段代码有错吗?有什么隐患?是否简介?请大家指点指点
{
group_auth=(Inter_group_auth)authvallist.get(i);
key = group_auth.getGroup_code();
if(authmap.containsKey(key)){
grouplist = authmap.get(key);
grouplist.add(group_auth);
System.out.println(grouplist.hashCode());
}else{
grouplist = new ArrayList<Inter_group_auth>();
System.out.println(grouplist.hashCode());
grouplist.add(group_auth);
authmap.put(key, grouplist);
}
}
/**---------------------对比的代码----------------
*/
for (int i = 0;i < authvallist.size();i++)
{
group_auth=(Inter_group_auth)authvallist.get(i);
key = group_auth.getGroup_code();
if(authmap.containsKey(key)){
grouplist.add(group_auth);
System.out.println(grouplist.hashCode());
}else{
grouplist = new ArrayList<Inter_group_auth>();
System.out.println(grouplist.hashCode());
grouplist.add(group_auth);
authmap.put(key, grouplist);
}
}
下面的这段代码有错吗?有什么隐患?是否简介?请大家指点指点
看你循环外层代码怎么写的了 取决grouplist 在声明处 是否创建实例对象了。另外我觉得2组代码的意义是不一样的
第一段代码 无论是走 if 还是 else grouplist 操作的对象改变了。
第二段代码 可能不会变 例如 先走一次 else 下次走 if 那么grouplist 操作的是一个对象
从我的理解你的代码是想干这么一件事:
往 authmap 中放入 list对象 相同的key 对应的group_auth 放在相同的list对象中,
你想象下循环3次key分别是 1 2 1 (对应group_auth:a b c)这两段代码执行结果有什么不同
第一段:authmap key=1 list=[a,c]
key=2 list=[b]
第二段:authmap key=1 list=[a]
key=2 list=[b,c]以上分析我觉得1是正解,2是错误的
谢谢了,脑袋短路了!拜谢结贴!