判断是否有重复的记录,如果两条记录重复去掉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集合分类总结 Java集合分类总结是Java语言中的一种容器,用于存储和管理多个对象。集合可以自动扩容,部分集合允许存放不同类型的元素。集合的主要分类有List、Set、Map等。 List集合是一种有序列表,允许存放...
建立倒排索引的重要核心代码,介绍代码中的核心思想并且附上了流程图,通过解释和图形展示更好了解
在实际应用中,Java的集合类如HashMap和ArrayList可以用来实现词典和倒排列表。同时,考虑性能和空间效率,可能需要使用更高级的数据结构,如Trie树或Bloom Filter。 总之,倒排索引的Java实现涉及文本预处理、数据...
此外,为了实现高效的数据处理,可能会利用多线程和并发控制技术,如Java的ExecutorService和并发集合。 在数据库层面,APS系统可能使用关系型数据库如MySQL或Oracle存储生产数据,并通过JDBC接口进行数据交互。...
Java集合类知识点总结 Java集合类是Java语言中最基本的数据结构之一,用于存储和操作对象的集合。下面是Java集合类的相关知识点总结: 集合的定义 集合是只能存储对象的数据结构,对象类型可以不一样,长度可变。...
在Java编程中,"list集合树状排序"是一种常见的需求,特别是在处理前端展示的数据时,如使用jQuery的treetable插件。这个场景通常涉及到数据结构的组织和排序,以便前端能够按照树形结构正确地展示层级关系。下面将...
Java面试题集合涵盖了Java语言的核心概念、面向对象特性、内存管理、多线程、类与对象的生命周期、数据结构与算法、接口与继承、异常处理等多个方面。以下是一些主要的知识点: 1. **super()与this()的区别**: - ...
山东大学大数据课程的实验二。...代码重构了setup(),map(),combiner(),partitation()和reducer()函数,功能是对文档进行倒排索引,得到一个单词有序,且单词的文件列表同样有序的倒排列表集合。
在Java中,排序是常见的任务,可以使用内置的`Arrays.sort()`或`Collections.sort()`方法对数组和集合进行排序。此外,Java还提供了丰富的排序算法供开发者自定义实现,例如快速排序、归并排序、堆排序等。这些排序...
【Java排序算法集合】 在Java编程中,排序算法是数据结构和算法中不可或缺的一部分,它用于将一组数据按照特定的顺序排列。常见的排序算法包括选择排序、冒泡排序和插入排序,下面我们将逐一探讨这些算法的基本思想...
Hoare提出,采用“分而治之”的策略,选择一个基准元素,通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序。...
Java算法源码集合是一个珍贵的学习资源,它包含了各种经典的算法实现,可以帮助开发者深入理解数据结构与算法,并提升编程技能。这个压缩包中的源代码可能是Java程序员们为了学习、实践或教学目的而整理的,旨在提供...
Java 控制台实现课程表是一个基础的编程项目,它涵盖了数据结构、IO 流和对象序列化的知识。...这就是利用 Java 实现课程表的基本流程,涉及了面向对象编程、集合操作、IO 流和对象序列化等多个核心概念。
JAVA的集合框架、多线程、I/O流等特性可以方便地处理文档集合和索引。 7. **自然语言处理(NLP)**: 在构建BM25模型时,通常需要进行预处理步骤,如分词、去除停用词、词干提取等,这些都属于NLP的范畴。JAVA中有很...
- **Java集合框架**:Java集合框架如List、Set和Map等,提供基本的搜索功能。例如,ArrayList的`indexOf()`方法可以搜索指定元素的索引。 - **Java 8 Stream API**:Stream API引入了强大的函数式编程能力,可以...
排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列的所有可能的方式;组合则是指不考虑元素的顺序,仅考虑元素的选取。在这个问题中,我们不仅要考虑元素的选取,还要考虑它们的顺序,因此属于...
这个项目是一个典型的Java GUI应用实例,它结合了文件I/O、字符串处理、集合操作和异常处理等多个核心Java编程概念,同时也展示了如何在Swing环境下创建用户友好的交互界面。通过这个项目,开发者可以提升对Java语言...
3. **集合框架**:为了存储和操作多个学生或成绩对象,Java集合框架如ArrayList、LinkedList、HashMap等会被用到。例如,可以使用ArrayList来存储学生列表,使用HashMap以学号为键,存储对应的学生对象。 4. **文件...
2. **集合框架**:为了存储和管理大量的学生和课程信息,系统可能使用了Java的集合框架,如ArrayList、HashMap等,它们用于动态存储和检索数据。 3. **文件输入/输出**:系统可能需要读取和保存学生的成绩数据,这...