有什么問題?
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class SetTest {
public List<Course> coursesToSelect;
public SetTest(){
coursesToSelect=new ArrayList<Course>();
}
public void testAdd(){
Course cr1 = new Course("1","數據結構");
coursesToSelect.add(cr1);
Course temp= (Course) coursesToSelect.get(0);
//System.out.println("添加了課程:" + temp.id + ":" + temp.name);
Course cr2= new Course("2","C語言");
coursesToSelect.add(0,cr2);
Course temp2= (Course) coursesToSelect.get(0);
//System.out.println("添加了課程:" + temp2.id + ":" + temp2.name);
//coursesToSelect.add(cr1);
//Course temp0= (Course) coursesToSelect.get(2);
//System.out.println("添加了課程:" + temp0.id + ":" + temp0.name);
Course[] course = {new Course("3","離散數學"),new Course("4","匯編語言")};
coursesToSelect.addAll(Arrays.asList(course));
Course temp3 = (Course)coursesToSelect.get(3);
Course temp4 = (Course)coursesToSelect.get(4);
//System.out.println("添加了兩門課程:" + temp3.id + ":" + temp3.name+";"+ temp4.id + ":" + temp4.name);
Course[]course2 = {new Course("5","高等數學"),new Course("6","大學英語")};
coursesToSelect.addAll(2,Arrays.asList(course2));
Course temp5 = (Course)coursesToSelect.get(2);
Course temp6 = (Course)coursesToSelect.get(3);
//System.out.println("添加了兩門課程:" + temp5.id + ":" + temp5.name+";"+ temp6.id + ":" + temp6.name);
}
private void testForEach() {
// TODO Auto-generated method stub
System.out.println("有如下課程待選(通過for each訪問):");
for(Object obj:coursesToSelect){
Course cr = (Course)obj;
System.out.println("課程:"+cr.id+":"+cr.name);
}}
public static void main(String[] args) {
// TODO Auto-generated method stub
SetTest st= new SetTest();
st.testAdd();
st.testForEach();
Student student = new Student("1","小明");
System.out.println("歡迎學生:"+ student.name +"選課!");
Scanner console = new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.println("請輸入課程ID");
String courseId = console.next();
for(Course cr:st.coursesToSelect){
if(cr.id.equals(courseId)){
student.courses.add(cr);
}
}
}
st.testForEachForSet(student);
}
public void testForEachForSet(Student student){
for(Course cr:student.courses){
System.out.println("選擇了課程:"+cr.id+":"+cr.name);
}
}
}
2016-01-08
Course temp3 = (Course)coursesToSelect.get(3);//你的代碼中獲取到的是地址為3的信息,是("4","匯編語言")
Course temp4 = (Course)coursesToSelect.get(4);//地址是4的信息,地址4現在還木有信息啊,這里應該是3,上面應該是2
因為地址從0開始放,開始地址0是數據結構,結果又把c語言放在0位置,那么數據結構就在1位置,你又放了兩個(離散數學、匯編語言),地址在2,3的位置上,然后又放2門課(高等數學、大學英語)在2的位置,那么地址位置又變了,現在0放c語言,1放數據結構,2放高等數學,3放大學英語,4放離散數學,5放匯編語言。