public void testAdd(){ //创建一个课程对象,并通过调用add方法,添加到备选课程 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); System.out.println("添加了课程:"+temp2.id+":"+temp2.name); Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; coursesToSelect.addAll(Arrays.asList(course)); Course temp3=(Course) coursesToSelect.get(2); Course temp4=(Course) coursesToSelect.get(3); System.out.println("添加了两门课程:"+temp3.id+":"+temp3.name+";" +temp4.id+":"+temp4.name+";"); Course[] course2={new Course("5","数学"),new Course("6","语言")}; coursesToSelect.addAll(2,Arrays.asList(course2)); Course temp5=(Course) coursesToSelect.get(2); Course temp6=(Course) coursesToSelect.get(3); System.out.println("添加了两门课程:"+temp5.id+":"+temp5.name+";" +temp6.id+":"+temp6.name+";"); //在此添加课程 1 coursesToSelect.add(cr1); Course temp0=(Course) coursesToSelect.get(2); System.out.println("添加了课程:"+temp0.id+":"+temp0.name); } /** * 取得List中元素的方法 * @param args */ public void testGet(){ int size=coursesToSelect.size(); System.out.println("有如下课程待选:"); for(int i=0;i<size;i++){ Course cr=(Course) coursesToSelect.get(i); System.out.println("课程:"+cr.id+":"+cr.name); } } public static void main(String[] args) { ListTest lt=new ListTest(); lt.testAdd();//添加课程 lt.testGet();//查询课程 }
你目前用的是List接口,元素可以重复。首先你在第三个位置上添加的是 5:数学。所以当你重复添加 1:数据结构 时获取到的是当前位置上的数据 即 5:数学
而实际你添加的是1:数据结构。