List 添加新对象后列表中的上一个对象
我试图将一些对象添加到列表中,但添加时我注意到它会覆盖最后添加的对象的数据。请看一下我的代码,也许我做错了什么:List 添加新对象后列表中的上一个对象,list,List,我试图将一些对象添加到列表中,但添加时我注意到它会覆盖最后添加的对象的数据。请看一下我的代码,也许我做错了什么: for (RenameRuleEntry rEntry : vRenameRuleEntryList) { List<String> workset = new ArrayList<String>(allAgenciesList); DataObject dobj = new DataObj
for (RenameRuleEntry rEntry : vRenameRuleEntryList) {
List<String> workset = new ArrayList<String>(allAgenciesList);
DataObject dobj = new DataObject();
dobj.setId(rEntry.getId());
vRenameRuleXAgencyEntryList2 = vToolsDelegate.searchRenameRuleXAgency(dStartDate, dEndDate, rEntry.getId(), DISABLED_FALSE);
myList.clear();
for (RenameRuleXAgencyEntry rAgency : vRenameRuleXAgencyEntryList2) {
myList.add(rAgency.getAgencyName() + "==" + rAgency.getAgencyId());
}
if(!myList.isEmpty()) {
dobj.setAssignedAgencies(myList);
workset.removeAll(myList);
}
dobj.setRestOfAgencies(workset);
vRenameRuleXGlobalEntryList = vToolsDelegate.searchRenameRuleXGlobal(dStartDate2, dEndDate, rEntry.getId(), null);
for (RenameRuleXGlobalEntry rGlobal : vRenameRuleXGlobalEntryList) {
if (rGlobal.getRenameRuleId() == null) {
globalFlagExist = false;
rGlobalId = null;
} else { // if it exists in RRULE_X_GLOBAL table check the flag too
if(rGlobal.getDisabled().equals(enabled))
dobj.setGlobal(true);
if(rGlobal.getDisabled().equals(disabled))
dobj.setGlobal(false);
rGlobalId = rGlobal.getId();
}
dobj.setGlobalID(rGlobalId);
}
listjson.add(dobj);
}
for(RenameRuleEntry rEntry:vRenameRuleEntryList){
列表工作集=新阵列列表(allAgenciesList);
DataObject dobj=新的DataObject();
dobj.setId(rEntry.getId());
VrenamerulexagencEntryList2=vToolsDelegate.searchRenameRuleXAgency(dStartDate,dEndDate,rEntry.getId(),DISABLED_FALSE);
myList.clear();
对于(重命名LexagencEntry rAgency:VrenamerLexagencEntryList2){
添加(rAgency.getAgencyName()+“==”+rAgency.getAgencyId());
}
如果(!myList.isEmpty()){
dobj.设置分配机构(myList);
工作集移除所有(myList);
}
dobj.机构设置(工作集);
vRenameRuleXGlobalEntryList=vToolsDelegate.searchRenameRuleXGlobal(dStartDate2,dEndDate,rEntry.getId(),null);
对于(重命名erulexGlobalEntry rGlobal:vRenameRuleXGlobalEntryList){
if(rGlobal.getRenameRuleId()==null){
globalFlagExist=false;
rGlobalId=null;
}else{//如果它存在于RRULE_X_全局表中,也请检查该标志
if(rGlobal.getDisabled().equals(enabled))
dobj.setGlobal(真);
if(rGlobal.getDisabled().equals(disabled))
dobj.setGlobal(假);
rGlobalId=rGlobal.getId();
}
dobj.setGlobalID(rGlobalId);
}
add(dobj);
}
第一次迭代:
对于添加的第一个对象,assignedAgencies size=1
第二次迭代:
现在,在第二次迭代之后,添加的第一个对象的分配代理被更改为size=5我找到了一个解决方案,我移动了List myList=new ArrayList();在for循环中,我的另一个问题是restOfAgencies总是size=42,它应该是所有现有代理减去分配的代理。