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 ...
一周排行
  • 有时我们需要查询出某字段没有值的全部记录,那应该用rs("xx")=""还是IsNull(rs("xx"))呢?要得出结论,我们还得从头说起:什么情况下字段 ...
  •   1.格式化日期 ${updated?string("yyyy-MM-dd HH:mm:ss")}     如果指定的变量不一定存在,可以这样: ${(dateMap.beginTime?str ...
  • 网络信息与管理加密: 1.QQ消息 单击QQ菜单,选择"系统设置",接着进入"系统设置"下的"本地安全"项(如图23),首先勾选"启用本地消息加密 ...
  • /* 警察抓小偷: 警察局抓了a,b,c,d四名嫌疑犯,其中只有一人是小偷.审问中: a说:"我不是小偷" b说:"c肯定是小偷" c说:"小偷肯定是d" ...
  • 文件比较 所谓的文件比较,一般设计四个领域 1.检查两个文件是否相同,如果不同,找不哪里不同 2.应用两个文件的不同之处,使从其中一个另外一个 3.使用校验和找出相同一致的文件 4.使用数字签名以验证文件       ...
  • 贾川: 今日任务:讨论学习函数代码,编程实现数据库连接,运行的时候图片保存有点问题 明日任务:分析程序找出错误,完成数据库连接 刘三龙: 今日任务:讨论学习函数代码,编程实现数据库连接,运行的时候图片保存有点问题 明 ...
  •   Get-DynamicDistributionGroup "群发" $container=(Get-DynamicDistributionGroup "群发").Recip ...
  • uva 165 Stamps The government of Nova Mareterrania requires that various legal documents have stamps attache ...
  • LocalRef与GlobalRef 前者类似局部变量(类似,但是又有本质区别),后者类似全局变量 前者在一次jni调用结束后,由jvm自动释放 后者需要手动释放 LocalRef内存泄露 LocalRef与局部变量 ...
  • #include<stdio.h> #include<stdlib.h> int main() { int n,cnt=0,i,j; scanf("%d",&n); ...