重寫了hashcode()和equals()方法之后輸出結(jié)果還是false
public class Course {
?public String id;
? public String name;
? public Course(String id,String name){
?this.id=id;
?this.name=name;
? }
? public Course(){
?
? }
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Course))
return false;
Course other = (Course) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
/**
* 測試Set的contains方法
* @param args
*/
public void testSetContains(){
System.out.println("請輸入學生已選的課程名稱:");//提示輸入課程名稱
String name=input.next();
Course course3=new Course();
course3.name=name;
System.out.println("新創(chuàng)建課程:"+course3.name);
System.out.println("備選課程中是否包含課程:"+course3.name+","+
? ?student.courses.contains(course3));
}
public static void main(String[] args) {
SetTest st=new SetTest();
st.testAdd();
st.testForEach();
? ? ? ? st.createStudentAndSelectCours();
? ? ? ? st.testSetContains();
? }
輸出結(jié)果
有如下課程待選(通過for each訪問):
課程:2,經(jīng)濟數(shù)學
課程:1,高等數(shù)學
課程:5,西方經(jīng)濟學
課程:6,統(tǒng)計學
課程:3,英語聽說
課程:4,英語讀寫
歡迎同學:小明選課!
請輸入課程ID:
4
請輸入課程ID:
5
請輸入課程ID:
6
請輸入學生已選的課程名稱:
統(tǒng)計學
新創(chuàng)建課程:統(tǒng)計學
備選課程中是否包含課程:統(tǒng)計學,false
2021-04-09
解決了嗎
2017-09-26
去看Course方法的重寫,id屬性剔除!
2016-09-19
有大神來解答嗎?這個折磨我一個晚上了!
2016-08-23
解決了嗎?我也是這樣
2016-07-01
我也是這個問題,有大神解決了嗎
2016-06-19
代碼貼全一點