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

求大神,哪里错了?

package com.imooc.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

/**
 * 备选课程类
 * @author Jack
 *
 */
public class ListTest {
	//用于存放备选课程
	public List coursesToSelect;
	
	public ListTest(){
		this.coursesToSelect = new ArrayList();
	}
	//add courses
	public void testAdd(){
		Courses cou1 = new Courses();
		cou1.setId("1");
		cou1.setName("数据结构");
		coursesToSelect.add(cou1);
		Courses c = (Courses) coursesToSelect.get(0);
		System.out.println("添加了课程:"+c.getId()+" "+c.getName());
		
		cou1.setId("2");
		cou1.setName("高等数学");
		coursesToSelect.add(cou1);																								
		Courses c1 = (Courses) coursesToSelect.get(1);				
		System.out.println("添加了课程:"+c1.getId()+" "+c1.getName());
	}
	
	public void testIterator(){
		Iterator it = coursesToSelect.iterator();
		while(it.hasNext()){
			Courses cs = (Courses) it.next();
			System.out.println(cs.getId()+" "+cs.getName());
		}
	}
	
	public void testForEach(){
		for(Object obj : coursesToSelect){
			Courses co = (Courses)obj;
			System.out.println(co.getId()+" "+co.getName());
		}
	}
	public static void main(String[] args){
		ListTest lt = new ListTest();
		lt.testAdd();
		lt.testIterator();
		lt.testForEach();
	}
	
}

输出如下:

http://img1.sycdn.imooc.com//5727697100018fde02780237.jpg

正在回答

2 回答

应该在第28行写入创建一个新的course的代码:Courses cou2 = new Courses();     然后下面两行的cou1改成cou2应该就可以了。

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

Jack_P_Wang 提问者

非常感谢!
2016-05-03 回复 有任何疑惑可以回复我~

因为Arraylist add()是引用,就是一个指向cou1的地址,然后你用set方法覆盖了之前cou1这个对象像的内容,Arraylist放着两个cou1,里面都是“2,高等数学”。

需要再申请一个对象存放“2,高等数学”

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

Jack_P_Wang 提问者

非常感谢!
2016-05-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神,哪里错了?

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