public class ListSet { //用于存放备选课程的List public List coursesToSelect; public ListSet(){ this.coursesToSelect = new ArrayList(); } //用于往coursesToSelect中添加备选课程 public void testAdd(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course cr1 = new Course("1","数据结构"); 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("数组长度为:" + len); } public static void main(String [] args){ ListSet lt = new ListSet(); lt.testAdd(); } }
一开始是一个空列表 → [ ]
coursesToSelect.add(cr1)
运行后,列表增加了元素 cr1。
现在的列表 → [ cr1 ]
此时 元素 cr1 的下标为 0 (下标从 0 开始),此时用 temp 读取位置 0 处的元素 即 cr1.
然后,运行后续的代码,到了
coursesToSelect.add(0,cr2);
会在位置 0 处插入 cr2, 然后原来的元素会位置后移。
现在的列表 → [ cr2 cr1 ]
此时,元素 cr2 的下标为 0,cr1 的下标变成了 1,此时用 temp2 读取位置0 处的元素 即 cr2.