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