Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法
来源:互联网 发布:mysql主从复制ssl 编辑:程序博客网 时间:2024/04/30 14:32
Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法
import java.util.HashSet;
import java.util.Set;
import java.util.Collections;
public class CollectionRun {
public static void main(String[] args){
Set set=new HashSet();
Person p=new Person();
set.add(p);
System.out.println(set.contains(p));
p.setId("T");
System.out.println(set.contains(p));
}
}
class Person{
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public boolean equals(Object o) {
// TODO Auto-generated method stub
if (this == o) return true;
if (o == null || !(o instanceof Person))
return false;
Person other = (Person)o;
// unsaved objects are never equal
if (id == null || other.getId() == null)
return false;
return id.equals(other.getId());
}
//将hashCode这个方法过行注释和不注释时运行的两种结果,考虑一下为什么?
public int hashCode() {
if (id != null) {
return id.hashCode();
} else {
return super.hashCode();
}
}
}
- Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法
- java中hashcode()方法和equals方法的区别
- [JAVA]Java中hashCode和equals方法的使用
- java的hashCode方法和equals方法
- java的hashCode方法和equals方法
- java中hashcode和equals方法的关系
- Java中equals方法、==和hashCode的区别
- Java中hashCode和equals方法的比较
- java中hashCode() 和 equals()方法的解析
- Java中Object类的equals()和hashCode()方法
- JAVA中HashCode和equals方法的使用
- 关于java的equals和hashcode方法
- java equals()和hashcode()方法的理解
- java的equals()和hashcode()方法使用
- [Java]hashCode和equals方法的比较
- 关于java的equals和hashcode方法
- java的equals、hashcode和Clone方法
- java中hashcode()和equals()的详解
- Finger协议源代码阅读笔记
- 转载: BitTorrent Trackerless DHT协议规范V1.0试行草案
- 南山滑雪小记
- 电脑不能正常关机
- 数据库设备与存储空间管理
- Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法
- 还是开始写吧
- 初次见面
- Rational ClearQuest使用说明书
- 在DLL中产生对话框的方法二(MFC Regular DLL)
- Rational ClearQuest手册
- 圣诞快乐
- .NET 程序的命名规则
- 如何编写更佳的bug report