Java Class 中hashCode()和equals方法
来源:互联网 发布:淘宝的ios退款店都关了 编辑:程序博客网 时间:2024/06/08 06:34
Java面试宝典下载:http://download.csdn.net/source/3563084
Collection的两个子接口Set和List,Set中的元素要求是不重复的,因此要重写equals方法。而对于HashSet方法而言一定要重写hashCode方法。
在向HahSet中添加元素时,没添加一个元素要判断这个元素是否已经存在,因此就涉及到了两个实例对象的比较问题。
比较两个实例对象是否相等的步骤:
(1)判断hashCode的返回值是否相同,如果不同,则不是同一个实例对象,可以添加进去;否则就进去第(2)步;
(2)判断equals方法的返回值是否为true,如果为true则相同,否则不同。
下面简单实现了一下这两个方法:
public class UserInfo {private String username;private String password;public UserInfo() {}public UserInfo(String _username, String _password) {this.username = _username;this.password = _password;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime*result + (username==null?0:username.hashCode());result = prime*result + (password==null?0:password.hashCode());return result;}@Overridepublic int equals(Object obj) {if(this == obj) {return true;}if(obj == null) {return false;}if(!(obj instanceof UserInfo)) {return false;}final UserInfo other = (UserInfo)obj;if(this.username == null) {if(other.getUsername() != null) {return false;}} else if(!this.username.equals(other.getUsername())) {return false;}if(this.password == null) {if(other.getPassword() != null) {return false;}} else if(!this.password.equals(other.getPassword())) {}return true;}//省去了对属性的get和set方法}
- Java Class 中hashCode()和equals方法
- Java中equals方法和hashCode方法
- java中Equals方法和HashCode方法
- java中equals和hashcode方法总结
- java 中hashcode()和equals()方法
- java中equals()和hashCode()方法详解
- java中重写equals和hashCode方法
- java中hashcode()和equals()方法
- java中equals和hashcode方法
- java 中equals()和hashCode()方法详解
- java中使用hashCode和equals方法
- java中使用hashCode和equals方法
- Java 中hashCode()和equals()方法
- Java中equals和hashcode方法重写
- Java 中hashCode & Equals方法
- Java equals 和 hashcode 方法
- java hashCode 和 equals 方法
- Java hashCode 和 equals 方法
- iPhone编码转换 ansi多字节编码到uicode的转换参数
- vs2010使用 HTML5 构建应用程序之你需要什么!
- TestNG简介--如果你觉得JUnit不够强大,TestNG几乎能解决你的一切问题
- 常用C函数----文件类
- mongrel 命令
- Java Class 中hashCode()和equals方法
- javascript操作小记
- DirectFB-1.5.0移植,支持3D硬件支持
- Core Location 简述
- Rails 3.0.x 使用 jquery
- 常用C函数----内存相关
- SlightPHP
- Android Permission
- TCP连接的建立与拆除