Jack_P_Wang
2016-05-02 22:52
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();
}
}输出如下:

应该在第28行写入创建一个新的course的代码:Courses cou2 = new Courses(); 然后下面两行的cou1改成cou2应该就可以了。
因为Arraylist add()是引用,就是一个指向cou1的地址,然后你用set方法覆盖了之前cou1这个对象像的内容,Arraylist放着两个cou1,里面都是“2,高等数学”。
需要再申请一个对象存放“2,高等数学”
Java入门第三季
409775 学习 · 4546 问题
相似问题