java中equals和hashcode方法的重载
2010-04-05 16:41
567 查看
这是一个重载过的类:
class People {
private String name;
public People(String name) {
this.name = name;
}
public String getName() {
return name;
}
public boolean equals(Object object) {
if (this == object) {
return true;
}
if (object instanceof People) {
People people = (People) object;
if (name.equals(people.getName())) {
return true;
}
}
return false;
}
public int hashCode() {
return name.hashCode();
}
}
下面是测试类:
public class SetTest {
public static void main(String[] args) {
Set<People> set = new HashSet<People>();
People p1 = new People("zhangsan");
People p2 = new People("lisi");
People p3 = new People("zhangsan");
set.add(p1);
set.add(p2);
set.add(p3);
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
for(Iterator<People> iter = set.iterator(); iter.hasNext();) {
System.out.println(iter.next().getName());
}
System.out.println("test".hashCode());
System.out.println("test1".hashCode());
}
}
class People {
private String name;
public People(String name) {
this.name = name;
}
public String getName() {
return name;
}
public boolean equals(Object object) {
if (this == object) {
return true;
}
if (object instanceof People) {
People people = (People) object;
if (name.equals(people.getName())) {
return true;
}
}
return false;
}
public int hashCode() {
return name.hashCode();
}
}
下面是测试类:
public class SetTest {
public static void main(String[] args) {
Set<People> set = new HashSet<People>();
People p1 = new People("zhangsan");
People p2 = new People("lisi");
People p3 = new People("zhangsan");
set.add(p1);
set.add(p2);
set.add(p3);
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
for(Iterator<People> iter = set.iterator(); iter.hasNext();) {
System.out.println(iter.next().getName());
}
System.out.println("test".hashCode());
System.out.println("test1".hashCode());
}
}
相关文章推荐
- JAVA中重写equals()方法为什么要重写hashcode()方法说明
- Java 中正确使用 hashCode 和 equals 方法
- JAVA中重写equals()方法的同时要重写hashcode()方法
- Java中的equals和hashCode方法详解
- 浅谈Java中的hashcode和equals方法
- JAVA正确地自定义比较对象---如何重写equals方法和hashCode方法
- Java中的equals方法和hashCode方法小结
- java equals与hashCode方法
- Java 中正确使用 hashCode 和 equals 方法
- Java 中正确使用 hashCode 和 equals 方法
- 浅析java中的hashcode()方法与equals()方法
- 【Java实战】源码解析为什么覆盖equals方法时总要覆盖hashCode方法
- Java 中正确使用 hashCode 和 equals 方法
- Java 中正确使用 hashCode 和 equals 方法
- Java中的equals和hashCode方法详解
- Java中的equals和hashCode方法详解
- 为什么要重写java中对象的equals方法和hashCode方法以及如何重写
- JAVA中的equals()和hashCode()方法(经典)
- Java基础之重写equals方法的同时为什么要重写hashCode方法
- 一种常见的Java编程错误:没有同时定义equals()和hashCode()方法