Course cr1 = new Course("1","数据结构");
courseToselect.add(cr1);
// 通过list方法取出添加的属性
Course temp1 = (Course) courseToselect.get(0);
// 对象存入集合都会变成object类型,取出时需转换类型
System.out.println("备选课程是:"+temp1.id+ ":"+temp1.name);
Course cr2= new Course("2","c语言");
courseToselect.add(0,cr2);
// 通过list方法取出添加的属性
Course temp2 = (Course) courseToselect.get(0);
// 对象存入集合都会变成object类型,取出时需转换类型
System.out.println("备选课程是:"+temp2.id+ ":"+temp2.name);
为什么输出第一个不是c语言 ,这里courseToselect.add(0,cr2)已经把他定位置定到第一个位置了
System.out.println("备选课程是:"+temp1.id+ ":"+temp1.name);
执行顺序是从上往下的。如果添加完“C语言”后,再打印 .get(1) 就是“数据结构” 了。
在输出的时候顺便把地址码一起输出了,最后用foreach循环输出courseToSelect中的内容,可以看出C语言的地址码是先输出的,所以C语言课程确实是第一个;只不过temp(数据结构课程)的输出语句在前面让你觉得它是第一个
代码从上往下看,输出结果没问题吧。
当打印System.out.println("备选课程是:"+temp1.id+ ":"+temp1.name); 时, cr2对象根本没有添加到。
这个问题是我理解的有问题吗?