CourseToSelect.add(0, cr2);這里cr2不是在0位置了嗎,為什么打印temp1還是cr1
public void TestAdd(){
Course cr1 = new Course("1","數(shù)據(jù)結(jié)構(gòu)");
CourseToSelect.add(cr1);
Course temp = (Course)CourseToSelect.get(0);
System.out.println("添加課程:"+temp.getId()+":"+temp.getName());
Course cr2 = new Course("2","C語(yǔ)言");
CourseToSelect.add(0, cr2);
Course temp2 =(Course)CourseToSelect.get(0);
System.out.println("添加課程:"+temp.getId()+":"+temp.getName());
System.out.println("添加課程:"+temp2.getId()+":"+temp2.getName());
}
結(jié)果是:
添加課程:1:數(shù)據(jù)結(jié)構(gòu)
添加課程:1:數(shù)據(jù)結(jié)構(gòu)
添加課程:2:C語(yǔ)言
2016-09-30
第二個(gè)System.out.println("添加課程:"+temp.getId()+":"+temp.getName()); 由于temp變量中存放的是第一次賦值的cr1對(duì)象,這個(gè)temp并沒(méi)有被重新賦值,當(dāng)然還是保持不變呀。
你若想比較,應(yīng)該把前后兩次出現(xiàn)的這個(gè)打印代碼改成如下代碼,再比較就對(duì)了:
System.out.println("添加課程:"+CourseToSelect.get(0).getId()+":"+CourseToSelect.get(0).getName());
另外你的代碼沒(méi)有注意編碼規(guī)范CourseToSelect作為一個(gè)對(duì)象變量,首字母應(yīng)該小寫(xiě)
2016-09-30
看來(lái)這位幕友還沒(méi)明白我之前的回答。代碼更新如下
public void TestAdd(){
Course cr1 = new Course("1","數(shù)據(jù)結(jié)構(gòu)");
CourseToSelect.add(cr1);
Course temp = (Course)CourseToSelect.get(0);
System.out.println("添加課程:"+CourseToSelect.get(0).getId()+":"+CourseToSelect.get(0).getName());
Course cr2 = new Course("2","C語(yǔ)言");
CourseToSelect.add(0, cr2);
Course temp2 =(Course)CourseToSelect.get(0);
System.out.println("添加課程:"+CourseToSelect.get(0).getId()+":"+CourseToSelect.get(0).getName());
System.out.println("添加課程:"+temp2.getId()+":"+temp2.getName());
}
結(jié)果是:
添加課程:1:數(shù)據(jù)結(jié)構(gòu)
添加課程:2:C語(yǔ)言
添加課程:2:C語(yǔ)言
你是想要這樣的效果對(duì)吧:)