请教一个算法问题。

阅读更多

请教一个算法问题,有一个集合,List<DeptUserModel> duList;

DeptUserModel,如下图所示:

public class DeptUserModel {
	private String goupName;
	private List userid;
	public String getGoupName() {
		return goupName;
	}
	public void setGoupName(String goupName) {
		this.goupName = goupName;
	}
	public List getUserid() {
		return userid;
	}
	public void setUserid(List userid) {
		this.userid = userid;
	}
	@Override
	public String toString() {
		return "DeptUserModel [goupName=" + goupName + ", userid=" + userid
				+ "]";
	}
	
}

现在我需要把duList里面所有goupName相同的DeptUserModel合并。以下是我的解决方案,求复杂度低一点的解决方法。 

 

/**
	 * 合并 List 把具有相同部门的用户合并
	 * @param duList
	 * @return
	 */
	public List getDeptUserModelByDeptUserModel( List duList){
		//合并DeptUserModel,把所有部门相同的合并到一起
		List duListTemp = new ArrayList();
		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 list = new ArrayList();
						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;
	}
	

 

你可能感兴趣的:(java)