请教一个算法问题,有一个集合,List<monospace;">DeptUserModel> duList;
DeptUserModel,如下图所示:
class="java" name="code">public class DeptUserModel { private String goupName; private List<String> userid; public String getGoupName() { return goupName; } public void setGoupName(String goupName) { this.goupName = goupName; } public List<String> getUserid() { return userid; } public void setUserid(List<String> userid) { this.userid = userid; } @Override public String toString() { return "DeptUserModel [goupName=" + goupName + ", userid=" + userid + "]"; } }
现在我需要把duList里面所有goupName相同的DeptUserModel合并。以下是我的解决方案,求复杂度低一点的解决方法。?
?
/** * 合并 List<DeptUserModel> 把具有相同部门的用户合并 * @param duList * @return */ public List<DeptUserModel> getDeptUserModelByDeptUserModel( List<DeptUserModel> duList){ //合并DeptUserModel,把所有部门相同的合并到一起 List<DeptUserModel> duListTemp = new ArrayList<DeptUserModel>(); for (DeptUserModel deptUserModel : duList) { if(duListTemp.size()<1){ duListTemp.add(deptUserModel); }else{ DeptUserModel dum = new DeptUserModel(); boolean ifAdd = false; for (DeptUserModel deptUserModelTemp : duListTemp){ if(deptUserModelTemp.getGoupName().equals(deptUserModel.getGoupName())){ List<String> list = new ArrayList<String>(); list.addAll(deptUserModelTemp.getUserid()); list.addAll(deptUserModel.getUserid()); deptUserModelTemp.setUserid(list); ifAdd = false; }else if(!deptUserModelTemp.getGoupName().equals(deptUserModel.getGoupName())){ dum = deptUserModel; ifAdd = true; } } if(ifAdd){ duListTemp.add(dum); } } } return duListTemp; }
?