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