请教一个算法问题。_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 请教一个算法问题。

请教一个算法问题。

 2014/9/15 2:13:13  429537044  程序员俱乐部  我要评论(0)
  • 摘要:请教一个算法问题,有一个集合,List<DeptUserModel>duList;DeptUserModel,如下图所示:publicclassDeptUserModel{privateStringgoupName;privateList<String>userid;publicStringgetGoupName(){returngoupName;}publicvoidsetGoupName(StringgoupName){this.goupName=goupName;
  • 标签:一个 问题 算法

请教一个算法问题,有一个集合,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;
	}
	

?

发表评论
用户名: 匿名