实例如下:
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小时内与您取得联系。