问答详情
源自:4-4 学生选课---添加课程 Ⅰ

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.mukewang.com/5bd07f580001046903270172.jpg

https://img3.mukewang.com/5bd07f5a0001ae7709700521.jpg

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

提问者:慕设计2812226 2018-10-24 22:22

个回答

  • 糊虎
    2018-11-13 15:34:41

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

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

  • qq_星辰_17
    2018-10-25 11:27:29

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

    https://img2.mukewang.com/5bd135c900013b7a05590229.jpg

    https://img3.mukewang.com/5bd135d90001851003810108.jpg


  • 慕运维0661890
    2018-10-25 00:03:06

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