博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HashSet如何检查重复?HashSet是如何保证数据不重复的?
阅读量:4222 次
发布时间:2019-05-26

本文共 587 字,大约阅读时间需要 1 分钟。

HashSet底层结构是一个HashMap,HashSet将值放在HashMap的键中,如果HashMap的键相同时会发生覆盖,因此HashSet的值不会重复。HashMap检查Key是否相同会通过equles方法,并通过比较hash值判断是否重复。

 //PRESENT是一个空的对象 private static final Object PRESENT = new Object(); private transient HashMap
map; //HashSet的构造方法 public HashSet() {     //创建一个HashMap     map = new HashMap<>(); } //如果触发HashSet的add方法 public boolean add(E e) {     // PRESENT是一个不变的固定值  return map.put(e, PRESENT)==null; }

hashCode()和equals():

  1. 如果两个对象相等,其hashcode也相等

  2. 如果两个对象相等,其equals方法会返回true

  3. hashcode相等,对象不一定是相等的

  4. 如果重写equals方法,那么也要重写hashcode方法

  5. hashcode是堆中对象产生的独特值,如果没有重写,那么该类的对象不会相等

转载地址:http://mfmmi.baihongyu.com/

你可能感兴趣的文章
上海控安入选首批工控安全防护能力贯标咨询机构名单
查看>>
自动驾驶汽车传感器数字孪生建模(一)
查看>>
CUDA 学习(四)、线程
查看>>
CUDA 学习(五)、线程块
查看>>
CUDA 学习(八)、线程块调度
查看>>
CUDA 学习(九)、CUDA 内存
查看>>
CUDA 学习(十一)、共享内存
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十四章 生化尖兵
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十五章 超级马里奥64
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十七章 游戏感的原理
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十八章 我想做的游戏
查看>>
游戏设计的艺术:一本透镜的书——第十章 某些元素是游戏机制
查看>>
游戏设计的艺术:一本透镜的书——第十一章 游戏机制必须平衡
查看>>
游戏设计的艺术:一本透镜的书——第十二章 游戏机制支撑谜题
查看>>
游戏设计的艺术:一本透镜的书——第十三章 玩家通过界面玩游戏
查看>>
编写苹果游戏中心应用程序(翻译 1.3 为iOS应用程序设置游戏中心)
查看>>
编写苹果游戏中心应用程序(翻译 1.4 添加游戏工具包框架)
查看>>
编写苹果游戏中心应用程序(翻译 1.5 在游戏中心验证本地玩家)
查看>>
编写苹果游戏中心应用程序(翻译 1.6 获取本地玩家的信息)
查看>>
编写苹果游戏中心应用程序(翻译 1.7 在游戏中心添加朋友)
查看>>