java 集合排重

判断是否有重复的记录,如果两条记录重复去掉enddate为空的记录
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;


public class MyTest {

	public static void main(String[] args) {
		List<JobInfo> jobs=new ArrayList<JobInfo>();
		jobs.add(new JobInfo("2012-1-28", "", "研发一部", "成员"));
		jobs.add(new JobInfo("2012-1-28", "2012-9-12", "研发一部", "成员"));
		jobs.add(new JobInfo("2011-10-28", "2012-9-12", "工程一部", "经理"));
		jobs.add(new JobInfo("2011-10-28", "2012-9-12", "工程一部", "经理"));
		new MyTest().filterObj(jobs);
	}

	public  void filterObj(List<JobInfo> jobs) {
		Map<String, Object> map=new HashMap<String, Object>();
		for (int i = 0; i < jobs.size(); i++) {
			JobInfo jobInfo=jobs.get(i);
			String a=jobInfo.getDeptname();
			String b=jobInfo.getStartdate();
			String c=jobInfo.getJobname();
			String d=jobInfo.getEnddate();
			String key=a+b+c;
			if (map.containsKey(key)) {
				JobInfo ji=(JobInfo) map.get(key);
				if (StringUtils.isBlank(d) && StringUtils.isNotBlank(ji.getEnddate())) {
					map.put(key, jobInfo);
				}
				continue;
			}
			map.put(key, jobInfo);
		}
		for (Object j : map.values().toArray()) {
			jobs.remove(j);
		}
		
		for (JobInfo j : jobs) {
			System.out.println(j.getJobname()+j.getStartdate()+j.getDeptname()+j.getEnddate());
		}
	}
}

class JobInfo{
	private String startdate;// 开始时间
	private String enddate;// 结束时间
	private String deptname;// 机构名称
	private String jobname;// 职位名称

	public JobInfo() {

	}
	public JobInfo(String startdate,String enddate,String departname,String jobname) {
		this.startdate=startdate;
		this.enddate=enddate;
		this.jobname=jobname;
		this.deptname=departname;
	}
	public JobInfo(Map map) {

	}

	public String getStartdate() {
		return startdate;
	}
	public void setStartdate(String startdate) {
		this.startdate = startdate;
	}
	public String getEnddate() {
		return enddate;
	}
	public void setEnddate(String enddate) {
		this.enddate = enddate;
	}
	public String getDeptname() {
		return deptname;
	}
	public void setDeptname(String deptname) {
		this.deptname = deptname;
	}
	public String getJobname() {
		return jobname;
	}
	public void setJobname(String jobname) {
		this.jobname = jobname;
	}
	 
	 
}

你可能感兴趣的:(java)