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(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course cr1=new Course("1","数据结构"); coursesToSelect.add(cr1); Course temp=(Course)coursesToSelect.get(0);//0是因为,List与数组一样,起始位置也是0 //又因为对象存入集合都会变成object类型,取出时需要类型转换,这里的(Course)就是强制类型转换 System.out.println("添加了课程"+temp.id+":"+temp.name); Course cr2=new Course("2","C语言"); coursesToSelect.add(0,cr2);//在0位置添加一个cr2,之前在0位置的cr1自动被顶到了1的位置 Course temp2=(Course)coursesToSelect.get(0); System.out.println("添加了课程"+temp2.id+":"+temp2.name); //以下方法会抛出数组越界异常 //Course cr3=new Course("3","test"); //courseToSelect.add(4,cr3); } public static void main(String[] args) { ListTest lt=new ListTest(); lt.testAdd(); }}运行结果为添加了课程1:数据结构添加了课程2:C语言搞不懂在0位置添加一个cr2,之前在0位置的cr1自动被顶到了1的位置,可之前的那段代码还是get(0)啊,难道说cr1被顶到了1,那么get(0)也会自动默认变成get(1)么还有就是既然已经实例化了一个cr1,为什么在强制转换的时候还要弄一个temp出来
添加回答
举报
0/150
提交
取消