重寫了equal后name還是提示false 怎么回事
public void containsValueTest(){
System.out.println("請輸入要確認的學(xué)生姓名:");
String name=scan.next();
Student student=new Student(null,name);
System.out.println("students中是否包含 ?"+name+" "+"學(xué)生"+students.containsValue(student));
if(!students.containsValue(student)){
System.out.println("學(xué)生映射表中不包含該學(xué)生");
}else{
for(Entry<String,Student> entry:students.entrySet()){
if((entry.getValue().getName()).equals(student.getName()))
System.out.println("對應(yīng)的ID:"+entry.getKey());
}
}
}
2016-07-07
前面的類的屬性你都定義private了吧,我用的public做的,稍微改了一下你的代碼,測試了一下,可以返回true
public void containsValueTest(){
System.out.println("請輸入要確認的學(xué)生姓名:");
Scanner console=new Scanner(System.in);
String name=console.next();
Student student=new Student(null,name);
System.out.println("students中是否包含 ?"+name+" "+"學(xué)生"+students.containsValue(student));
if(!students.containsValue(student)){
System.out.println("學(xué)生映射表中不包含該學(xué)生");
}else{
for(Entry<String,Student> entry:students.entrySet()){
if((entry.getValue().name).equals(student.name))
System.out.println("對應(yīng)的ID:"+entry.getKey());
}
//這是測試的結(jié)果
請輸入學(xué)生ID:
1
未查詢到該學(xué)生記錄,請輸入學(xué)生姓名:
111
成功添加學(xué)生:1:111
請輸入學(xué)生ID:
2
未查詢到該學(xué)生記錄,請輸入學(xué)生姓名:
222
成功添加學(xué)生:2:222
請輸入學(xué)生ID:
3
未查詢到該學(xué)生記錄,請輸入學(xué)生姓名:
333
成功添加學(xué)生:3:333
總共有3學(xué)生
學(xué)生:111
學(xué)生:222
學(xué)生:333
請輸入要確認的學(xué)生姓名:
333
students中是否包含 ?333 學(xué)生true
對應(yīng)的ID:3
2016-07-07
我剛才看了一下代碼才發(fā)現(xiàn)我導(dǎo)入類的時候?qū)脲e了,導(dǎo)入另一個包的student了,我改回來就對了,不過還是非常感謝你,只附了這么一段代碼你就做了嘗試,很認真,非常棒
2016-06-30
String name=scan.next();中scan是怎么來的,前面是不是還差了一個Scanner scan=new Scanner(System.in);