为了账号安全,请及时绑定邮箱和手机立即绑定

courseToselect.add(0,cr2)已经把他定位置定到第一个位置了,输出为什么在第二个位置

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);

https://img1.sycdn.imooc.com//5bd07f580001046903270172.jpg

https://img1.sycdn.imooc.com//5bd07f5a0001ae7709700521.jpg

为什么输出第一个不是c语言 ,这里courseToselect.add(0,cr2)已经把他定位置定到第一个位置了

正在回答

3 回答

System.out.println("备选课程是:"+temp1.id+ ":"+temp1.name);

执行顺序是从上往下的。如果添加完“C语言”后,再打印    .get(1) 就是“数据结构” 了。

0 回复 有任何疑惑可以回复我~

在输出的时候顺便把地址码一起输出了,最后用foreach循环输出courseToSelect中的内容,可以看出C语言的地址码是先输出的,所以C语言课程确实是第一个;只不过temp(数据结构课程)的输出语句在前面让你觉得它是第一个

https://img1.sycdn.imooc.com//5bd135c900013b7a05590229.jpg

https://img1.sycdn.imooc.com//5bd135d90001851003810108.jpg


1 回复 有任何疑惑可以回复我~

代码从上往下看,输出结果没问题吧。
当打印System.out.println("备选课程是:"+temp1.id+ ":"+temp1.name); 时, cr2对象根本没有添加到。
这个问题是我理解的有问题吗?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

courseToselect.add(0,cr2)已经把他定位置定到第一个位置了,输出为什么在第二个位置

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信