使用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
我也是