public?class?ListSet?{
????//用于存放備選課程的List
????public?List?coursesToSelect;
????public??ListSet(){
????????this.coursesToSelect?=?new?ArrayList();
????}
????//用于往coursesToSelect中添加備選課程
????public?void?testAdd(){
????????//創(chuàng)建一個課程對象,并通過調(diào)用add方法,添加到備選課程List中
????????Course?cr1?=?new?Course("1","數(shù)據(jù)結(jié)構(gòu)");
????????coursesToSelect.add(cr1);
????????Course?temp?=?(Course)?coursesToSelect.get(0);
????????System.out.println("添加了課程:"?+?temp.id?+?":"?+?temp.name);
????????Course?cr2?=?new?Course("2","C語言");
????????coursesToSelect.add(0,cr2);
????????Course?temp2?=?(Course)?coursesToSelect.get(0);
????????int?len?=?coursesToSelect.size();
????????System.out.println("添加了課程:"?+?temp2.id?+?":"?+?temp2.name);
????????System.out.println("數(shù)組長度為:"?+?len);
????}
????public?static?void?main(String?[]?args){
????????ListSet?lt?=?new?ListSet();
????????lt.testAdd();
????}
}
2019-07-22
一開始是一個空列表????→????[? ]
運(yùn)行后,列表增加了元素 cr1。
現(xiàn)在的列表??????????????????→????[ cr1 ]
此時 元素 cr1 的下標(biāo)為 0 (下標(biāo)從 0 開始),此時用 temp 讀取位置 0 處的元素 即 cr1.
然后,運(yùn)行后續(xù)的代碼,到了
會在位置 0 處插入 cr2, 然后原來的元素會位置后移。
現(xiàn)在的列表 ??????????????????→????[ cr2? cr1 ]
此時,元素 cr2 的下標(biāo)為 0,cr1 的下標(biāo)變成了 1,此時用 temp2 讀取位置0 處的元素 即 cr2.