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 ...
一周排行
  • 顺序容器:       vector 支持快速随机访问       list  支持快速随机插入删除       deque 双端队列 容器适配器:通过原有的容器类型定义新的接口       stack:后进先出   ...
  • http://oracle.chinaitlab.com/induction/727571.html 1.缺省处理 Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC ...
  • Java中volatile修饰符是一种用来保证不同线程之间交互的特殊机制.当一个线程修改volatile变量,另一个线程能够看到这个修改.第一个线程通知第二个线程变量已经被修改. 下面用图来解释: ready是一个v ...
  •  http://blog.csdn.net/vipzjyno1/article/details/23542617  刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要 ...
  • 易网科技讯 6月30日消息,据国外媒体报道,由于媒体报道称几家航空公司打算降低给予旅行社代理佣金比例,苏格兰皇家银行(RBS)将携程网(NasdaqGS: CTRP)股票评级下调至"持有",目标股 ...
  • 敬业是一种态度 敬业这个话题几乎每年都会被提起,而且每年还会继续下去.也许,公司不消失,敬业就是一个永恒的话题. 在我的概念里,敬业是员工对企业和自己职业生涯的一种态度.这种态度是好是坏,主动权在员工,而企业 与此却 ...
  • 编写高效的Android代码 毫无疑问,基于Android平台的设备一定是嵌入式设备.现代的手持设备不仅仅是一部电话那么简单,它还是一个小型的手持电脑,但是,即使是最快的最高端的手持设备也远远比不上一个中等性能的桌面 ...
  • When you execute a complicate store procedure, maybe it will execute a long time, maybe you want to change s ...
  • SQLite是一个开源.免费的小型的Embeddable RDBMS(关系型数据库),用C实现,内存占用较小,支持绝大数的SQL92标准,现在已变得越来越流行,它的体积很小,被广泛应用于各种不同类型的应用中.SQLi ...
  • 如何将多张图片,保存在同一个PDF文档中,其实解决的方法很简单,下面有个不错的方法,大家不妨一试 我们经常会遇到这样一种情况,那就是如何将多张图片,保存在同一个PDF文档中,其实解决的方法很简单,下面小编就为大家介绍 ...