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