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,它应该是所有现有代理减去分配的代理。