全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

利用Java Set 去除重复object的方法

实例如下:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 编写者:CP
 * <br />类描述:set集合针对String 类型和8大基础数据类型 过滤掉重复数据,如果存放的是其他类型对象,则需要重写hashCode方法和equals方法,当equals 比较相等时,则会去比较hashCode值 hashCode的值 如果一致的话,则不会存进set
 */
public class SetDemo {
	
	public static void main(String[] args) {
		Set<String> nameSet = new HashSet<String>();
		nameSet.add("张三");
		nameSet.add("李四");
		nameSet.add("王五");
		nameSet.add("张三");
		
		// 输出结果 张三	李四	王五
		for(String name : nameSet){
			System.out.print(name + "\t");
		}
		// List集合去除重复基础数据
		List<String> nameList = new ArrayList<String>();
		nameList.add("张三");
		nameList.add("李四");
		nameList.add("王五");
		nameList.add("赵六");
		nameSet.addAll(nameList);
		
		// 输出结果 张三	李四	王五	赵六
		for(String name : nameSet){
			System.out.print(name + "\t");
		}
		
		// 去除编号和用户名一样的 对象,需要重写 equals 方法 和 hashCode方法
		User admin = new User(1, "admin");
		User user = new User(2, "user");
		User user1 = new User(2, "user");
		User admin1 = new User(3, "admin");
		
		
		Set<User> userSet = new HashSet<User>();
		userSet.add(admin);
		userSet.add(user);
		userSet.add(admin1);
		userSet.add(user1);
		// 输入结果 admin1	admin3	user2
		for(User u : userSet){
			System.out.print(u.username + u.id + "\t");
		}
		
		System.out.println(user.equals(null));
	}
}

class User{
	
	protected Integer id;
	
	protected String username;
	
	public User(Integer id, String username){
		this.id = id;
		this.username = username;
	}


	/**
	 * 如果对象类型是User 的话 则返回true 去比较hashCode值
	 */
	@Override
	public boolean equals(Object obj) {
		if(obj == null) return false;
		if(this == obj) return true;
		if(obj instanceof User){ 
			User user =(User)obj;
//			if(user.id = this.id) return true; // 只比较id
			// 比较id和username 一致时才返回true 之后再去比较 hashCode
			if(user.id == this.id && user.username.equals(this.username)) return true;
			}
		return false;
	}



	/**
	 * 重写hashcode 方法,返回的hashCode 不一样才认定为不同的对象
	 */
	@Override
	public int hashCode() {
//		return id.hashCode(); // 只比较id,id一样就不添加进集合
		return id.hashCode() * username.hashCode();
	}

	
}

以上这篇利用Java Set 去除重复object的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# set去除重复  # Java中的HashSet详解和使用示例_动力节点Java学院整理  # Java中List Set和Map之间的区别_动力节点Java学院整理  # Java通过PropertyDescriptor反射调用set和get方法  # 详解Java中list  # set  # map的遍历与增强for循环  # java中实现list或set转map的方法  # Java 从Set里面取出有序的记录详解及实例  # 重写  # 李四  # 王五  # 给大家  # 的是  # 就不  # 希望能  # 再去  # 这篇  # 时才  # 则会  # 小编  # 大家多多  # 则需  # 过滤掉  # String  # object  # lt  # br 


相关文章: 关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何选择香港主机高效搭建外贸独立站?  C#如何在一个XML文件中查找并替换文本内容  西安专业网站制作公司有哪些,陕西省建行官方网站?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  建站之星如何优化SEO以实现高效排名?  高防服务器如何保障网站安全无虞?  济南企业网站制作公司,济南社保单位网上缴费步骤?  官网网站制作腾讯审核要多久,联想路由器newifi官网  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何做静态网页,sublimetext3.0制作静态网页?  购物网站制作公司有哪些,哪个购物网站比较好?  如何在IIS中新建站点并解决端口绑定冲突?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何制作算命网站,怎么注册算命网站?  建站之星后台密码遗忘?如何快速找回?  如何访问已购建站主机并解决登录问题?  如何构建满足综合性能需求的优质建站方案?  自助网站制作软件,个人如何自助建网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  黑客如何利用漏洞与弱口令入侵网站服务器?  如何用y主机助手快速搭建网站?  如何高效配置IIS服务器搭建网站?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  ,sp开头的版面叫什么?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  免费视频制作网站,更新又快又好的免费电影网站?  表情包在线制作网站免费,表情包怎么弄?  如何获取开源自助建站系统免费下载链接?  已有域名和空间,如何快速搭建网站?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  如何在Ubuntu系统下快速搭建WordPress个人网站?  电商网站制作价格怎么算,网上拍卖流程以及规则?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  如何用低价快速搭建高质量网站?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  建站主机选购指南:核心配置优化与品牌推荐方案  已有域名和空间如何快速搭建网站?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何快速完成中国万网建站详细流程?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  c# 服务器GC和工作站GC的区别和设置  如何快速搭建FTP站点实现文件共享?  如何在沈阳梯子盘古建站优化SEO排名与功能模块? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。