2 zhangyunyue zhangyunyue 于 2014.08.06 10:05 提问

Java遍历对象数组遇到问题

List listResults=....;
EquipmentGroupJoinVO[] eqvo = new EquipmentGroupJoinVO[listsize];
eqvo = listResults.toArray(eqvo);
List vmresult = .....;
//获得关系前先清除上次结果,将集合关系获取放在循环外面减少数据库操作次数
listconns.clear();
listconns = this._eqGroupmanager.searchGuaConnections();
for(int m = 0 ; m<eqvo.length; m++){

 Vector<UserVmVO> tempvms = new Vector<UserVmVO>();
 tempvms.clear();

 for(int i=0;i<vmresult.size();i++){

     UserVmVO vmvo = new UserVmVO();
     vmvo= vmresult.get(i);

    //"0" 表示与当前指定设备组已经绑定;“1”表示未与任何设备组有关联,可以被分配;“-1” 表示已经被分配到其他设备组
     System.out.println("groupID:"+eqvo[m].getId());

     String res = CheckifIngroup(vmvo, eqvo[m].getId(),listconns);

     if(res.equals("0")){
         vmvo.setSelected("true");
     }else{
         vmvo.setSelected("false");
     }

    tempvms.add(vmvo);

 }
//将设备信息作为child保存在设备组中
  eqvo[m].childs.clear();
  eqvo[m].childs = tempvms;


  //结果正确(最后一次打印时的值为true)
System.out.println(m+"---<--m-"+"eqvonew :   "+eqvo[m].getChilds().get(0).getSelected());

}

//重新遍历eqvo,发现所有eqvo对象下的childs集合中的对象UserVmVO的属性selected的值都为true?????
for(int h=0;h<eqvo.length;h++){
//结果错误
System.out.println("\n\n"+h+"---<--m-"+"eqvonew : "+eqvo[h].getChilds().get(0).getSelected());
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!