使用set'集做練習時,運行結果更像是棧
package?com.imooc.collection;
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?add(){
?Course?cr1?=?new?Course("1",?"數據結構");
?coursesToSelect.add(cr1);
?Course?temp?=?(Course)?coursesToSelect.get(0);
?//System.out.println("課程id:"+temp.id+"課程名字:"+temp.name);
?
?Course?cr2?=?new?Course("2",?"C++");
?coursesToSelect.add(0,?cr2);
?Course?temp2?=?(Course)?coursesToSelect.get(0);
?//System.out.println("課程id:"+temp2.id+"課程名字:"+temp2.name);
?
?//以下方法會拋出數組下標越界異常
?/*Course?cr3?=?new?Course("3",?"java");
?coursesToSelect.add(3,?cr3);*/
?
?Course[]?course??=?{new?Course("3",?"離散數學"),?new?Course("4",?"匯編語言")};
?coursesToSelect.addAll(Arrays.asList(course));
?
?Course?temp3?=?(Course)?coursesToSelect.get(2);
?Course?temp4?=?(Course)?coursesToSelect.get(3);
// ?System.out.println("添加了兩門課程:"?+?temp3.id?+?":"?+
// ?temp3.name?+?";"?+?temp4.id?+?":"?+?temp4.name);
?
?Course[]?course1??=?{new?Course("5",?"高等數學"),?new?Course("6",?"大學英語")};
?coursesToSelect.addAll(2,?Arrays.asList(course1));
?
?Course?temp5?=?(Course)?coursesToSelect.get(2);
?Course?temp6?=?(Course)?coursesToSelect.get(3);
// ?System.out.println("添加了兩門課程:"?+?temp5.id?+?":"?+
// ?temp5.name?+?";"?+?temp6.id?+?":"?+?temp6.name);
?}
public?void?TestGet(){
?int?size?=?coursesToSelect.size();
?System.out.println("有如下課程待選:");
?for(int?i?=?0;?i?<?size;?i++){
?Course?cr?=?(Course)?coursesToSelect.get(i);
?System.out.println("課程:"+cr.id+":"+cr.name);
?}
?}
public?void?TestForeach(){
?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.add();
st.TestForeach();
Student?sd?=?new?Student("1",?"小明");
System.out.println("歡迎"+sd.name+"選課!");
Scanner?sc?=?new?Scanner(System.in);
for?(int?i?=?0;?i?<?3;?i++)?{
System.out.println("請輸入課程ID:");
String?courseId?=?sc.next();
for?(Course?cr?:?st.coursesToSelect)?{
if(cr.id.equals(courseId))?{
sd.courses.add(cr);
sd.courses.add(cr);
}
}
}
st.forEachCourse(sd);
}
public?void?forEachCourse(Student?sd){
for?(Course?cr?:?sd.courses?)?{
System.out.println(sd.name+"選的課程為:"+cr.id+cr.name);
}
}
}
package?com.imooc.collection;
/*
?*?
?*/
public?class?Course?{
public?String?id;
public?String?name;
public?Course(String?id,?String?name)?{
this.id?=?id;
this.name?=?name;
}
}
package?com.imooc.collection;
import?java.util.HashSet;
import?java.util.Set;
/*
?*?學生類
?*/
public?class?Student?{
public?String?id;
public?String?name;
public?Set<Course>?courses;
public?Student(String?id,?String?name){
this.id?=?id;
this.name?=?name;
this.courses?=?new?HashSet<Course>();
}
}我的感覺更像是棧,求解是怎么回事,最后輸入的最先輸出,重新執行還是這樣子
有如下課程待選:
課程:2:C++
課程:1:數據結構
課程:5:高等數學
課程:6:大學英語
課程:3:離散數學
課程:4:匯編語言
歡迎小明選課!
請輸入課程ID:
1
請輸入課程ID:
2
請輸入課程ID:
3
小明選的課程為:3離散數學
小明選的課程為:2C++
小明選的課程為:1數據結構
2017-07-17
我也是