Java记录 56 详解HashSet不含重复元素的实现

详解HashSet不含重复元素的实现
HashSet的add方法:
public boolean add(E e)
如果此 set 中尚未包含指定元素,则添加指定元素。更确切地讲,如果此 set 没有包含满足 (e==null ? e2==null : e.equals(e2)) 的元素 e2,则向此 set 添加指定的元素 e。如果此 set 已包含该元素,则该调用不更改 set 并返回 false。 
 
Object的equals方法:
public boolean equals(Object obj)
指示其他某个对象是否与此对象“相等”。 
equals 方法在非空对象引用上实现相等关系: 
自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。 
对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。 
传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。 
一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。 
对于任何非空引用值 x,x.equals(null) 都应返回 false。 
Object的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。 
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
更多相关文章
  • Oulipo Time Limit : 3/1ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 67   Accepted Submission(s) : 44 Problem Descr ...
  • 1. web前端开发分享-css,js入门篇 2. web前端开发分享-css,js进阶篇 3. web前端开发分享-css,js提高篇 4. web前端开发分享-css,js工具篇 5. web前端开发分享-css,js深化篇 6. web前端开发分享-css,js移动篇
  • VB.NET发送电子邮件(通过使用SmtpClient类) 以下代码已通过VS2008测试. ''' ''' 通过SmtpClient类发送电子邮件 ''' ''' ''' ''' ''' ''' ''' Private Function SendMail(ByVal ReceiveAddressL ...
  • 一.安装Oracle Step1 下载oracle压缩包并解压到同一文件夹下面   Step2 双击setup.exe进行安装       Step3:进入如下界面配置: 邮箱可不填,去掉更新     除了设置密码,其他均可默认安装!       可自行选择安装路径,确保该安装盘有4G以上内存可使用 ...
  •   前言: 正则表达式(英语:Regular Expression)原属于计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里边,正则表达式通常被用来检索.替换那些符合某个模式的文本.许多程序设计语言都支持利用正则表达式进行字符串操作.例如,P ...
  • WIN8打开图片或PDF时提示在禁用UAC时,此应用程序无法激活解决   WIN8打开图片或PDF时提示在禁用UAC时,此应用程序无法激活   解决办法:   1.键盘windows图标+“X”,选择运行:   2.在运行框中输入"msconfig":   3.弹出的框中选择&q ...
一周排行
  • 在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,1,2,3,……n 例如:我们根据表的某个字段排序后,要对这些数据加上序列,这个时候序号常常不是我们建表时设置好的自增的主键id,怎么办呢???? 可能我们 ...
  • Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MV ...
  •   <machineKey> 元素用于指定保护表单身份验证 Cookie 和页面级视图状态所使用的加密密钥.验证密钥和算法.以下代码示例显示了 Machine.config 中的默认设置: <mac ...
  • 今天在做android项目的时候,遇到了这个异常,好吧,其实平常遇到最多的异常是IllegalstateException,都是跟我们硬件相连的SDK抛出来的,把我折磨的欲生欲死啊.扯远了.说回到今天的这个异常,ja ...
  •  From:Head First Design Patterns    Simple Factory:    
  • 场景:像我们在Uber应用开场,看到一一段视频作为开始,这样子让用户很快投入应用使用的场景中去,这种以视频作为开场的应用,我们是不是觉得很高大上呢,,其实是使用了SerfaceView去加载一段小视频,然后使用med ...
  • 使用Android-query框架能够快速开发Android,比传统开发android所要编写的代码要少得很多,容易阅读等优势.         下面开认识一下该项目,项目如图:    根据项目名称就知道它的意思了, ...
  • 中国国家互联网信息办公室和浙江省人民政府联合主办的首届世界互联网大会(乌镇峰会)将于2014年11月19日至21日在浙江省乌镇召开.全球范围内来自政府.国际组织.企业.科技社群和民间社群的互联网领军人物,将以&quo ...
  • char * a1; short * b1; int * c1; long * d1;只要带有*号,都占4个字节,不管*号多少个都是一样.要查看一个变量的所占的类型,就把变量名去掉,就是它所占的类型.如:int a[ ...
  • 一.使用字符串作为条件查询 在 Home/controller/UserController.class.php 下插入 <?php namespace Home\Controller; use Think\C ...