package collection_map;import java.util.ArrayList;import java.util.List;//備選課程類public class ListTest {//用于存放備選課程的List ? public List coursesToSelect; ?? ? public ListTest(){ ?? ? 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);//0是因為,List與數(shù)組一樣,起始位置也是0 ? //又因為對象存入集合都會變成object類型,取出時需要類型轉(zhuǎn)換,這里的(Course)就是強制類型轉(zhuǎn)換 ? System.out.println("添加了課程"+temp.id+":"+temp.name); ?? ?? ? Course cr2=new Course("2","C語言"); ? coursesToSelect.add(0,cr2);//在0位置添加一個cr2,之前在0位置的cr1自動被頂?shù)搅?的位置 ? Course temp2=(Course)coursesToSelect.get(0); ? System.out.println("添加了課程"+temp2.id+":"+temp2.name); ?? ? //以下方法會拋出數(shù)組越界異常 //Course cr3=new Course("3","test"); //courseToSelect.add(4,cr3); ? ? } ?? ? public static void main(String[] args) { ListTest lt=new ListTest(); lt.testAdd(); }}運行結(jié)果為添加了課程1:數(shù)據(jù)結(jié)構(gòu)添加了課程2:C語言搞不懂在0位置添加一個cr2,之前在0位置的cr1自動被頂?shù)搅?的位置,可之前的那段代碼還是get(0)啊,難道說cr1被頂?shù)搅?,那么get(0)也會自動默認(rèn)變成get(1)么還有就是既然已經(jīng)實例化了一個cr1,為什么在強制轉(zhuǎn)換的時候還要弄一個temp出來
這個理解不了
慕工程6005648
2016-11-14 18:28:40