為什么我寫(xiě)上了hashcode方法還是返回false?
代碼
public class Class {
String id;//課程
String name;
public String getId() {
return id;
}
public String getName() {
return name;
}
public void set(String name,String id){
this.id=id;
this.name =name;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
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 Class))
return false;
Class other = (Class) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
2017-04-17
沒(méi)人嗎
2017-04-16
ddd
2017-04-16
public void stuCourse(){//測(cè)試學(xué)生選擇課程
System.out.println("測(cè)試學(xué)生選擇課程2");
Student stu=new Student(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
stu.set("小明","1"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
System.out.println("***歡迎學(xué)生"+stu.name+"選課***"); ? ? ? ? ?
? ? Scanner input=new Scanner(System.in); ? ? ? ? ? ? ? ??
? ? while(true){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? System.out.println("請(qǐng)問(wèn)您要選擇多少門課程?"); ? ? ? ? ? ? ??
? ? int a=input.nextInt(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? if(a!=0){
? ? if(a<=courseClass.size()){ ? ? ? ? ? ? ? ? ? ?
? ? ? ? ?for(int i=0;i<a;i++){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? System.out.println("請(qǐng)輸入課程id:"); ? ? ? ? ? ? ?
? ? String kcid=input.next(); ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? for(Class cl:courseClass){ ? ? ? ? ? ? ? ? ? ? ??
? ? if(cl.id.equals(kcid)){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?stu.cla.add(cl);//保存選擇的課程 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? }else{
? ? ?System.out.println("課程大于課程總量!"); ? ? ? ? ? ? ? ? ?
? ? ? ? ?continue;
? ? ? }
? ? }else{
? ? System.out.println("至少選1門課程!!");
? ? continue;
? ? }
? ? xuanze();
break;
? ? }
}
public void xuanze(){//輸出總共選擇的課程
? ? for(Class c:Student.cla){
? ? System.out.println("選擇了 課程"+c.id+":"+c.name);
? ? }
? ? }
//set的contains 方法
public void testSetContains(){
System.out.println("測(cè)試學(xué)生已選擇的課程名稱:");
String names=input.next();
Class cla3 = new Class();
cla3.name=names;
System.out.println("取得課程:"+names);
System.out.println("是否包含課程:"+cla3.name+":"+student.cla.contains(cla3));
}