java中你知道怎么利用hashSet去重吗?
一只IT界中的菜鸟,我立志做一只最菜的鸟
授人以鱼不如授人以渔
作为一个程序猿我们要有一个善于分析你所见到的产品,最起码你要知道让你做你能不能实现功能
话不多说进入主题
去重作用就是保证数据的唯一性,去重要做的第一件事就是 重写 Object 中的equals 和 hashCode方法
为什么要重写这两个方法
我们要知道Object类中定义的equals()方法是用来比较两个引用所指向的对象的内存地址是否一致;hashCode()是根据对象的值。
有时我们会希望两个不同对象的值相同时、就认为它们两个相同,但是Object中的equals()比较的是地址,所以重写equals()方法,HashCode同样的原理
到本文的重点了上代码
- 继承Object类
public class people extends Object {
2.重写equals 和 hashCode方法
@Overridepublic boolean equals(Object o){if (o==null) //if后面只有一行是可以省略 {}return false;if (this==o)return true;if (o instanceof people){ //instacheof 比较两个是否是同一类型的对象people p= (people)o;if (p.getName().equals(this.getName()) && p.getAge().equals(this.getAge())){ //name和age是我提供的两个属性return true;}}return false;}@Overridepublic int hashCode(){return Objects.hash(name,age);}
3.测试
@GetMapping("/postMan")public String postman(){Set<people> peopleHashSet = new HashSet<>();people p = new people();p.setName("c罗");p.setAge(34);people p1 = new people();p1.setName("c罗");p1.setAge(34);people p2 = new people();p2.setName("姚明");p2.setAge(36);/* people p1 = new people("姚明",36); //这样写必须要有构造函数people p2 = new people("c罗",34);*/peopleHashSet.add(p);peopleHashSet.add(p1);peopleHashSet.add(p2);String resultPostNan=null;for (people ps: peopleHashSet) {resultPostNan += ps.toString();}return resultPostNan;}
4 结果
如果有不明白的地方,可在下方留言评论或者私信留言,空闲时间看到会回复,如有不同见解欢迎指出问题,共同进步!!!
结束语
预祝全国高考考生,旗开得胜 高考加油送给千万辛辛学子
java中你知道怎么利用hashSet去重吗?相关推荐
- java中给对象的List集合去重的几种方法(Lambda)
java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...
- java中两个list合并和去重操作
java中两个list合并并去除重复 public static void main(String[] args) throws Exception {List list1 =new ArrayLis ...
- java中的几种泛型类——HashSet、HashMap、TreeSet、TreeMap,遍历map,排序,HashTable比较
HashSet HashSet<E>泛型类在数据组织上类似于数学上的集合,可以进行"交"."并"."差"等运算. HashSet ...
- Java中的HashCode(2)之Hashset造成的内存泄露
所谓内存泄露就是一个对象占用的一块内存,当这个对象不在被使用时,该内存还没有被收回. 例子 package cn.xy.test; public class Point2 { private int ...
- java中JSB,Cocos Creator 利用JSB进行JS和Android相互调用
一.JS调用Android 在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: Java var ...
- java中HashMap、ArrayList、HashSet的存储原理及遍历方式汇总
HashMap类 底层存储方式:1. HashMap在JDK1.7之前底层是用数组+链表的方式存储的:在JDK1.8之后底层是用数组+链表+红黑树存储的;2.HashMap里面实现了一个静态内部类En ...
- 利用HashSet给list去重
如果有一个string的list要去重,那么可以用以下代码: List<String> orgIds=........//orgIds即可能存在重复数据的String的集合 //利用Has ...
- Java中List集合去重的几种方式
准备数据: // 准备数据 List<String> list = new ArrayList(); list.add("a"); list.add("b&q ...
- java中怎么创建表格_Java中的表格怎么利用表格模型进行创建
Java中的表格怎么利用表格模型进行创建 发布时间:2020-12-03 16:44:43 来源:亿速云 阅读:89 作者:Leah 本篇文章给大家分享的是有关Java中的表格怎么利用表格模型进行创建 ...
最新文章
- [Win] 利用Memory DC抽取EXE的图标并保存为BMP文件
- MHA 日常维护命令集
- 本博客正式开通 Chat快问 功能
- Struts2-值栈的定义
- 四、卫星定位《苹果iOS实例编程入门教程》
- 解决npm 的 shasum check failed for错误
- php ajax复选框是否选中的值,jquery-ajax - php+ajax分页时,checkbox复选框选中的问题...
- Unity,基于layer的碰撞配置
- 最全面、最详细的“前端模块化”总结
- 邮局解决方案 发邮件邮箱使用 系统邮件自动发送 邮件发送提醒 网易免费企业邮 设置自己的域名邮箱
- 重新leetcode第1天——二叉树遍历算法讲解合集
- android手机和荣耀哪个版本好,【求测评】荣耀v40轻奢版与荣耀X10哪款更好?图文爆料分析...
- 科研笔记2:科技论文作图规范
- c语言74hc595程序,74hc595使用方法与单片机驱动源程序
- 零基础学习IT技术是有技巧的
- 如何制作SOLIDWORKS材料明细表模板
- 寻找怪数:有一种奇怪的自然数,它的比其本身小的所有因子之和等于它本身,例如:6=1+2+3,其中1、2、3都是6的因子,编程找出整数N之内的所有怪数。
- 关于python机器学习cross_val_score()交叉检验的参数cv实际默认为5这件事,你怎么看?
- 常见的希腊字母及读音
- ROC受试曲线AUC[TPR/ FPR/截断点/StratifiedKFold/KFold]