問(wèn)題已經(jīng)自我排查解決
@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 Student))
return false;
Student other = (Student) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
public void testContainsKeyOrValue() {
//本例中讓用戶輸入某個(gè)學(xué)生的姓名,再去判斷姓名所對(duì)應(yīng)的學(xué)生是否包含在這個(gè)studentsMap中
//提示輸入學(xué)生Id
System.out.println("請(qǐng)輸入要查詢的學(xué)生ID:");
Scanner console = new Scanner(System.in);//定義一個(gè)Scanner對(duì)象
String id = console.next();//取得從鍵盤(pán)上輸入的學(xué)生id字符串
//在Map中,用containsKey()方法,來(lái)判斷是否包含某個(gè)Key值
System.out.println("你輸入的學(xué)生id為"+id+",在學(xué)生映射表中是否存在"+students.containsKey(id));
//判斷如果存在就輸出那個(gè)學(xué)生的姓名
if(students.containsKey(id))
System.out.println("對(duì)應(yīng)的學(xué)生為:"+students.get(id).name);
//提示輸入學(xué)生姓名
System.out.println("請(qǐng)輸入要查詢的學(xué)生姓名:");
String name = console.next();//從鍵盤(pán)上取得輸入的學(xué)生姓名字符串
//用containsValue()方法,來(lái)判斷是否包含某個(gè)Value值
if(students.containsValue(new Student(null,name)))//先創(chuàng)建一個(gè)學(xué)生對(duì)象,id設(shè)置為空,姓名設(shè)為name的值,
System.out.println("在學(xué)生映射表中,確實(shí)包含學(xué)生:"+name);//暫時(shí)先回到student類驗(yàn)證有沒(méi)有調(diào)用Value有關(guān)的equals方法
else
System.out.println("在學(xué)生映射表中不存在該學(xué)生!");
}
請(qǐng)輸入學(xué)生ID:
1
請(qǐng)輸入學(xué)生姓名:
明
成功添加學(xué)生:明
請(qǐng)輸入學(xué)生ID:
2
請(qǐng)輸入學(xué)生姓名:
紅
成功添加學(xué)生:紅
請(qǐng)輸入學(xué)生ID:
3
請(qǐng)輸入學(xué)生姓名:
華
成功添加學(xué)生:華
總共有:3個(gè)學(xué)生
學(xué)生:明
學(xué)生:紅
學(xué)生:華
請(qǐng)輸入要查詢的學(xué)生ID:
1
你輸入的學(xué)生id為1,在學(xué)生映射表中是否存在true
對(duì)應(yīng)的學(xué)生為:明
請(qǐng)輸入要查詢的學(xué)生姓名:
明
在學(xué)生映射表中不存在該學(xué)生!
2019-12-11
問(wèn)題已自我排查解決