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 ...
一周排行
  • 我卸载掉猎豹无线wifi后出现了连不上网的情况,现在已经解决.在此提供解决流程.希望能对各位有用,转载请注明出处. 首先使用netsh wlan set hostednetwork mode=disallow禁用虚拟 ...
  • Problem Description After this year's college-entrance exam, the teacher did a survey in his class on studen ...
  •     1.首先用USB连接你的Android设备,然后在终端运行命令,它可以启动设备的5端口使其在网络上可以连接. adb tcpip 5   2.现在断开USB连接,然后确保设备和你的电脑连接同一个无线网络. 进 ...
  • 图片的宽度和高度是未知的,没有一个固定的尺寸,在这个前提下要使图片在一个固定了宽度和高度的容器中垂直居中,想想感觉还是挺麻烦的,由于最近的项目可能会用到这个方案,所以把一些常用的方法都收集整理了一下. 下图是理想中的 ...
  • listener trace, server trace用法 listener trace, server trace用法1,server trace, 指的是 sqlnet的server端trace, 可以在ser ...
  • Ubuntu14.10+cuda7.0+caffe配置 一:linux安装 Linux安装不说了,我这里安装的是ubuntu14.10   二:nVidia驱动和CUDA Toolkit的安装和调试(*.run方法) ...
  • 原本是这样格式的数据: object(Thrift\Server\PageCards)#32 (3) { ["cards"]=> array(10) { [0]=> object(Th ...
  • 近日,北斗正式发布了一款名为青葱960的智能手机,在发布会上当天北斗官方正式公布了青葱960手机的配置和价格,下面文章是针对目前喜欢这款机型的朋友问得比较多的问题:北斗青葱960支持4G吗?青葱960支持电信4G吗? ...
  • 大家可还记得<30天自制操作系统>的封面上的那只猫吗?记得当时,在果壳网有人问,为何这只猫长了两只尾巴呢,延着这条线,我把这本书捧上了展示的舞台.事隔四个多月,我又重提此书. 这本经我手宣传的书,就像我的 ...
  • 多家媒体报道,以监督"公车私用"知名的区少坤上周因PiaoChang被长沙警方抓获.消息引起网民关注,一些人认为事有蹊跷,提出质疑,表示这可能是跟维权活动有关. "人民网"报道 ...