`
xiaofengyu
  • 浏览: 49049 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

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集合分类总结.doc

    Java集合分类总结 Java集合分类总结是Java语言中的一种容器,用于存储和管理多个对象。集合可以自动扩容,部分集合允许存放不同类型的元素。集合的主要分类有List、Set、Map等。 List集合是一种有序列表,允许存放...

    基于java的倒排索引

    建立倒排索引的重要核心代码,介绍代码中的核心思想并且附上了流程图,通过解释和图形展示更好了解

    倒排索引java实现

    在实际应用中,Java的集合类如HashMap和ArrayList可以用来实现词典和倒排列表。同时,考虑性能和空间效率,可能需要使用更高级的数据结构,如Trie树或Bloom Filter。 总之,倒排索引的Java实现涉及文本预处理、数据...

    javaAPS高级排产系统

    此外,为了实现高效的数据处理,可能会利用多线程和并发控制技术,如Java的ExecutorService和并发集合。 在数据库层面,APS系统可能使用关系型数据库如MySQL或Oracle存储生产数据,并通过JDBC接口进行数据交互。...

    Java集合类知识点总结

    Java集合类知识点总结 Java集合类是Java语言中最基本的数据结构之一,用于存储和操作对象的集合。下面是Java集合类的相关知识点总结: 集合的定义 集合是只能存储对象的数据结构,对象类型可以不一样,长度可变。...

    list集合树状排序-java

    在Java编程中,"list集合树状排序"是一种常见的需求,特别是在处理前端展示的数据时,如使用jQuery的treetable插件。这个场景通常涉及到数据结构的组织和排序,以便前端能够按照树形结构正确地展示层级关系。下面将...

    java面试题集合

    Java面试题集合涵盖了Java语言的核心概念、面向对象特性、内存管理、多线程、类与对象的生命周期、数据结构与算法、接口与继承、异常处理等多个方面。以下是一些主要的知识点: 1. **super()与this()的区别**: - ...

    山东大学 大数据实验二 倒排索引算法Java实现

    山东大学大数据课程的实验二。...代码重构了setup(),map(),combiner(),partitation()和reducer()函数,功能是对文档进行倒排索引,得到一个单词有序,且单词的文件列表同样有序的倒排列表集合。

    java 多功能排的资源

    在Java中,排序是常见的任务,可以使用内置的`Arrays.sort()`或`Collections.sort()`方法对数组和集合进行排序。此外,Java还提供了丰富的排序算法供开发者自定义实现,例如快速排序、归并排序、堆排序等。这些排序...

    java排序算法集合

    【Java排序算法集合】 在Java编程中,排序算法是数据结构和算法中不可或缺的一部分,它用于将一组数据按照特定的顺序排列。常见的排序算法包括选择排序、冒泡排序和插入排序,下面我们将逐一探讨这些算法的基本思想...

    常用排序算法的java实现(冒泡、插入、选择、希尔、归并、快排)

    Hoare提出,采用“分而治之”的策略,选择一个基准元素,通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序。...

    java 算法源码集合.rar

    Java算法源码集合是一个珍贵的学习资源,它包含了各种经典的算法实现,可以帮助开发者深入理解数据结构与算法,并提升编程技能。这个压缩包中的源代码可能是Java程序员们为了学习、实践或教学目的而整理的,旨在提供...

    java控制台实现课程表

    Java 控制台实现课程表是一个基础的编程项目,它涵盖了数据结构、IO 流和对象序列化的知识。...这就是利用 Java 实现课程表的基本流程,涉及了面向对象编程、集合操作、IO 流和对象序列化等多个核心概念。

    JAVA版BM25排序模型

    JAVA的集合框架、多线程、I/O流等特性可以方便地处理文档集合和索引。 7. **自然语言处理(NLP)**: 在构建BM25模型时,通常需要进行预处理步骤,如分词、去除停用词、词干提取等,这些都属于NLP的范畴。JAVA中有很...

    搜索功能设计java实现

    - **Java集合框架**:Java集合框架如List、Set和Map等,提供基本的搜索功能。例如,ArrayList的`indexOf()`方法可以搜索指定元素的索引。 - **Java 8 Stream API**:Stream API引入了强大的函数式编程能力,可以...

    从n个数组中取出所有排列组合(Java实现)

    排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列的所有可能的方式;组合则是指不考虑元素的顺序,仅考虑元素的选取。在这个问题中,我们不仅要考虑元素的选取,还要考虑它们的顺序,因此属于...

    JAVA设计文本文件读取倒序排序

    这个项目是一个典型的Java GUI应用实例,它结合了文件I/O、字符串处理、集合操作和异常处理等多个核心Java编程概念,同时也展示了如何在Swing环境下创建用户友好的交互界面。通过这个项目,开发者可以提升对Java语言...

    Java程序学生成绩信息管理

    3. **集合框架**:为了存储和操作多个学生或成绩对象,Java集合框架如ArrayList、LinkedList、HashMap等会被用到。例如,可以使用ArrayList来存储学生列表,使用HashMap以学号为键,存储对应的学生对象。 4. **文件...

    绩点管理系统java代码

    2. **集合框架**:为了存储和管理大量的学生和课程信息,系统可能使用了Java的集合框架,如ArrayList、HashMap等,它们用于动态存储和检索数据。 3. **文件输入/输出**:系统可能需要读取和保存学生的成绩数据,这...

Global site tag (gtag.js) - Google Analytics