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出来
相关分类