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 ...
一周排行
  •  源代码下载:点此下载 在前面的文章曾讨论了HTTP消息头的三个和断点继传有关的字段.一个是请求消息的字段Range,另两个是响应消息字段Accept-Ranges和Content-Range.其中Accept-Ra ...
  • 一.全局作用域 全局作用域的变量不论在什么时候都可以直接引用,而不必通过全局对象:满足以下条件的变量属于全局作用域:1.在最外层定义的变量2.全局对象的属性3.任何地方隐式定义的变量(未定义直接赋值的变量) 注意:在 ...
  • 就在Conficker病毒从控制器处获得新的指示的几天前,安全研究员发现了这种蠕虫病毒中存在的漏洞,从而有助于人们更容易检测出受其感染的电脑. 这种病毒的漏洞是由Tillmann Werner和Felix Leder ...
  • private void AfterEditorButtonCloseUp(object sender, EditorButtonEventArgs e) { if (e.Context != null) { var ...
  • (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中: CString(typedef CStringT > CString)为V ...
  • 本人摘自:http://sourcemaking.com/design_patterns/object_pool   Object Pool Design Pattern Intent Object pooling ...
  •       在开始敲机房收费系统的时候,纠结于数据库是自己建好呢还是先用给的数据库呢?毕竟自己创建数据库的话,担心在类似于权限设置.功能设置上出现问题,最终导致系统因当初设计的小问题而出现"堆栈现象&quo ...
  • 最近在网上看到一个用java来操纵excel的open source,在weblogic上试用了一下,觉得很不错,特此向大家推荐一下. 首先去http://www.andykhan.com/jexcelapi/ind ...
  • 作者:朱俊代码:C#关键字:FreeTextBox.流媒体出自:http://blog.csdn.net/foxmail/archive/2004/08/21/81096.aspx摘要:最近一个项目要求可以在发表文章 ...
  • /* *(程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: 李瑞 * 完 ...