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

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

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 回答

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

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

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

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


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

糖醋肉3984350 提问者

非常感谢!想了好久!!!谢谢哦
2016-10-03 回复 有任何疑惑可以回复我~

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

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语言

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

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

举报

0/150
提交
取消

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

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