我有關於java equals和hashcode的聲明。這個聲明對重寫hashcode和equals有什麼意義?
如果我們用這樣一個Integer對象HashMap中的關鍵,我們將不能夠可靠地檢索相關值
這是什麼意思?爲什麼它說'不可靠'?我寫了一個測試程序,它總是有效的。
public class Test1 {
public static void main(String[] args){
Map<Integer, Student> map = new HashMap<Integer, Student>();
map.put(1, new Student("john"));
map.put(2, new Student("peter"));
Student s1 = map.get(1);
Student s2 = map.get(1);
Student s3 = map.get(2);
System.out.println("s1:"+s1+" s2:"+s2+" s3:"+s3);
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s1.equals(s3));
System.out.println(s1.equals(s2));
}
}
class Student{
private String name;
public Student(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
您需要引用更多 – hvgotcodes 2012-01-13 15:17:33
這樣一個Integer對象嗎?哪一個??? – edutesoy 2012-01-13 15:18:24
這個陳述來自哪裏?什麼是完整的上下文? – weekens 2012-01-13 15:18:41