`
xiaofengyu
  • 浏览: 48427 次
  • 性别: 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的倒排索引

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

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

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

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

    用java实现了以下算法: 1、冒泡排序、冒泡排序的两种改进。 2、插入排序。 3、选择排序。 4、希尔排序。 5、归并排序。 6、快速排序。

    大型国企内部Java面试题

    主要是Java后端的,16K左右的,涉及SE、WEB、三大框架SSM、springboot、MQ、数据库、springcloud、JVM、Redis、多线程、hashmap的底层、面试技巧等 SSM涉及浅层的底层,如IOC、AOP,专为没看过源码的人应付面试准备...

    人工智能-项目实践-搜索引擎-java实验1-实现搜索引擎的倒排索引数据结构

    java实验1-实现搜索引擎的倒排索引数据结构 实验1知识点: 集合类的使用如ArrayList,HashMap ◦对这些集合类的操作包括:遍历、添加、排序,得到集合的大小、判断集合里是否已存在指定元素 第三是熟悉对象的序列...

    java面试宝典

    *** JAVA面试题. *** 1、作用域public,private,protected,以及不写时的区别 答:区别如下: ...Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排 序、线程安全化等操作

    集合工具类

    该集合工具类简洁的帮你完成 集合分组、求并集、交集、差集、排序、判空、去重、排重、判重

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    在 java 语言中,Java 程序的基本单位是类,也就是说:一个 Java 程序是由多个类组成 的。定义一个类与定义一个数据类型是有区别的。在程序设计语言中,把定义数据类型的能 力作为一种很重要的能力来对待。在面向...

    java算法大全源码包.zip

    二叉树是n(n&gt;=0)个结点的有序集合。每个结点最多有2个子节点,即左结点和右结点,且左右结点顺序不能更改。 当n=0时,为空二叉树;当n=1时,为只有一个根二叉树。 3.排序 (1)冒泡排序 重复地走访过要排序...

    基于Java的推箱子游戏设计与源码实现.rar

    (5)功能控制模块: 该模块是几个功能函数的集合,包括屏幕输出功能、指定位置状态判断功能和关卡重置功能。 基于Java的推箱子游戏设计与实现(附带源码+毕业论文等资料+视频讲解+截图) 此次毕业设计基于Java语言...

    java范例开发大全源代码

     第12章 集合(教学视频:45分钟) 358  12.1 Set 358  实例204 利用HashSet删除学生 358  实例205 不重复的随机数序列 360  实例206 运用映射的相关类(Map) 363  实例207 运用集的相关类(Set) ...

    java范例开发大全

    实例238 排座位(线程优先级) 451 实例239 赛车 454 13.4 定时器 458 实例240 定时器(Timer) 458 实例241 数字定时器 459 13.5 线程连接池 462 实例242 手术任务(线程池) 462 实例243 模拟人工服务台(线程连接...

    Java范例开发大全 (源程序)

     第12章 集合(教学视频:45分钟) 358  12.1 Set 358  实例204 利用HashSet删除学生 358  实例205 不重复的随机数序列 360  实例206 运用映射的相关类(Map) 363  实例207 运用集的相关类(Set) 365 ...

    Java服务器端开发面试.doc

    涉及到各种效率问题等,里面最好阅读一下源码 集合的遍历方法和使用iterator来遍历的区别,集合可否修改,能否删除其中的一 个元素,然后size是否变化等等问题 JAVA垃圾回收,内存结构 异常的种类 Object类,哪些...

    java排序算法之_选择排序(实例讲解)

    下面小编就为大家带来一篇java排序算法之_选择排序(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    JavaSwing 学生成绩管理系统 静态版 面向对象课程设计

    系统有管理员和教师两个角色,管理员登录之后可以进行课程管理、学生管理、排课;...当前是不含数据库的版本,使用Java集合存储数据、 数据库版见:https://download.csdn.net/download/u011731544/88304493

    Java范例开发大全(全书源程序)

    第12章 集合(教学视频:45分钟) 358 12.1 Set 358 实例204 利用HashSet删除学生 358 实例205 不重复的随机数序列 360 实例206 运用映射的相关类(Map) 363 实例207 运用集的相关类(Set) 365 12.2 List ...

    使用Java实现一个基于内存的英文全文检索搜索引擎【100012394】

    利用 Java 的集合类在内存里建立过滤后剩下单词的倒排索引; 内存里建立好的索引对象可以序列化到文件,同时可以从文件里反序列化成内存里的索引对象; 可以在控制台输出索引的内容。 功能 2:基于构建好的索引,...

    java范例开发大全(pdf&源码)

    第12章 集合(教学视频:45分钟) 358 12.1 Set 358 实例204 利用HashSet删除学生 358 实例205 不重复的随机数序列 360 实例206 运用映射的相关类(Map) 363 实例207 运用集的相关类(Set) 365 12.2 List 368 实例...

    java8集合源码分析-pangdan:面试相关技能

    java8 集合源码分析 pangdan 算法和数据结构 数组、链表、二叉树、队列、栈的各种操作(性能,场景) 二分查找和各种变种的二分查找 各类排序算法以及复杂度分析(快排、归并、堆) 各类算法题(手写) 理解并可以...

Global site tag (gtag.js) - Google Analytics