见下面的源代码,现在有一个类A,作为Key放入到Map 中,想找出来,却找不到import java.io.Serializable;
import java.util.*;
public final class A implements Serializable {
private String a;
public A() {
}
public String getA(){
return a;
}
public void setA(String a){
this.a=a;
}
public boolean equals(Object o){
if(this==o){
return true;
}
if(o instanceof A){
A b=(A)o;
if(b.getA().equals(a)){
return true;
}
}
return false;
}
public static void main(String[] args) {
A a1 = new A();
a1.setA("1");
A b=new A();
b.setA("1");
System.out.println(a1.equals(b));
Map m=new HashMap();
m.put(a1,"1");
System.out.println(m.containsKey(b));
System.out.println(m.get(b));
}}
import java.util.*;
public final class A implements Serializable {
private String a;
public A() {
}
public String getA(){
return a;
}
public void setA(String a){
this.a=a;
}
public boolean equals(Object o){
if(this==o){
return true;
}
if(o instanceof A){
A b=(A)o;
if(b.getA().equals(a)){
return true;
}
}
return false;
}
public static void main(String[] args) {
A a1 = new A();
a1.setA("1");
A b=new A();
b.setA("1");
System.out.println(a1.equals(b));
Map m=new HashMap();
m.put(a1,"1");
System.out.println(m.containsKey(b));
System.out.println(m.get(b));
}}
A.equals(B) 必定可以推出 A.hashCode() == B.hashCode();在这个例子中你可以这样写
public int hashCode() {
return a.hashCode();
}