setTest中編譯好testListContains方法后
public void testAdd(){
? ?Course cr1 = new Course();
? ?cr1.setId("1");
? ?cr1.setName("JAVA編程");
? ?coursesToSelect.add(cr1);
? ?Course temp=(Course)coursesToSelect.get(0);}
public void testListContains(){
? ?System.out.println("請(qǐng)輸入要查詢課程的ID:");
? ?Scanner console=new Scanner(System.in);
? ?while (true){
? ? ? ?String id=console.next();
? ? ? ?Course course=coursesToSelect.get(id.indexOf(id));
? ? ? ?if (course.getName()==null){
? ? ? ?System.out.println("請(qǐng)重新輸入ID");
? ? ? ?continue;
? ?}
? ? ? ?System.out.println("取得課程"+course.getName());
? ? ? ?System.out.println("備選課程是否含有該課程:"+course.getName()+coursesToSelect.contains(course));
? ? ? ?break;
? ?}
}
為什么運(yùn)行結(jié)果不正確,輸入5,也會(huì)出現(xiàn)0位置的結(jié)果?
以下是運(yùn)行結(jié)果:
通過(guò)迭代器訪問(wèn):
1JAVA編程
2大學(xué)英語(yǔ)
3計(jì)算機(jī)導(dǎo)論
請(qǐng)輸入要查詢課程的ID:
5
取得課程JAVA編程
備選課程是否含有該課程:JAVA編程true
2016-03-10
這句中,id.indexOf(id)是在id這個(gè)字符串中找id的內(nèi)容的位置,比如說(shuō)???? "5".indexOf("5")返回值自然是0?,所以出現(xiàn)0位置的結(jié)果