CourseToSelect.add(0, cr2);这里cr2不是在0位置了吗,为什么打印temp1还是cr1

来源:4-4 学生选课---添加课程 Ⅰ

糖醋肉3984350

2016-09-30 12:00

public void TestAdd(){

Course cr1 = new Course("1","数据结构");

CourseToSelect.add(cr1);

Course temp = (Course)CourseToSelect.get(0);

System.out.println("添加课程:"+temp.getId()+":"+temp.getName());

Course cr2 = new Course("2","C语言");

CourseToSelect.add(0, cr2);

Course temp2 =(Course)CourseToSelect.get(0);

System.out.println("添加课程:"+temp.getId()+":"+temp.getName());

System.out.println("添加课程:"+temp2.getId()+":"+temp2.getName());

}

结果是:

添加课程:1:数据结构

添加课程:1:数据结构

添加课程:2:C语言


写回答 关注

2回答

  • 慕粉3897455
    2016-09-30 15:16:21
    已采纳

    第二个System.out.println("添加课程:"+temp.getId()+":"+temp.getName()); 由于temp变量中存放的是第一次赋值的cr1对象,这个temp并没有被重新赋值,当然还是保持不变呀。

    你若想比较,应该把前后两次出现的这个打印代码改成如下代码,再比较就对了:

    System.out.println("添加课程:"+CourseToSelect.get(0).getId()+":"+CourseToSelect.get(0).getName());

    另外你的代码没有注意编码规范CourseToSelect作为一个对象变量,首字母应该小写


    糖醋肉398...

    非常感谢!想了好久!!!谢谢哦

    2016-10-03 13:21:37

    共 1 条回复 >

  • 慕粉3897455
    2016-09-30 17:45:33

    看来这位幕友还没明白我之前的回答。代码更新如下

    public void TestAdd(){

    Course cr1 = new Course("1","数据结构");

    CourseToSelect.add(cr1);

    Course temp = (Course)CourseToSelect.get(0);

    System.out.println("添加课程:"+CourseToSelect.get(0).getId()+":"+CourseToSelect.get(0).getName());

    Course cr2 = new Course("2","C语言");

    CourseToSelect.add(0, cr2);

    Course temp2 =(Course)CourseToSelect.get(0);

    System.out.println("添加课程:"+CourseToSelect.get(0).getId()+":"+CourseToSelect.get(0).getName());

    System.out.println("添加课程:"+temp2.getId()+":"+temp2.getName());

    }

    结果是:

    添加课程:1:数据结构
    添加课程:2:C语言
    添加课程:2:C语言

    你是想要这样的效果对吧:)

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题