為什么遍歷SET出來的是有序的,試了很多次都是這樣
package?com.study.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(){ this.coursesToSelect?=?new?ArrayList<Course>(); } public?void?testAdd(){ //向List添加單個課程元素 Course?cr1?=?new?Course("1","數(shù)據(jù)結(jié)構(gòu)"); coursesToSelect.add(cr1); //向List中指定索引位置添加單個課程元素 Course?cr2?=?new?Course("2",?"C語言"); coursesToSelect.add(0,?cr2); //用List的addAll方法添加多個課程元素 Course[]?course?=?{new?Course("3",?"離散數(shù)學(xué)"),new?Course("4",?"匯編語言")}; //使用工具類Arrays的asList將數(shù)組轉(zhuǎn)化為List元素 coursesToSelect.addAll(Arrays.asList(course)); //用List的addAll方法向List中的指定位置添加多個課程元素 Course[]?course2?=?{new?Course("5",?"高等數(shù)學(xué)"),?new?Course("6",?"大學(xué)英語")}; coursesToSelect.addAll(2,?Arrays.asList(course2)); } /** ?*?通過for?each語名來遍歷List中的元素,它是迭代器的簡化寫法 ?*?@param?argus ?*/ public?void?testForEach(){ System.out.println("有如下課程可供選擇(通過for?each訪問):"); for(Course?cr?:?coursesToSelect){ System.out.println("課程:"?+?cr.id?+?":"?+?cr.name); } } public?static?void?main(String[]?args)?{ SetTest?st?=?new?SetTest(); st.testAdd(); st.testForEach(); //創(chuàng)建一個學(xué)生對象 Student?student?=?new?Student("1",?"小明"); System.out.println("歡迎學(xué)生"?+?student.name?+?"選課"); //創(chuàng)建一個Scanner對象 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?csr?:?student.courses){ System.out.println("選擇了如下課程:"?+?csr.id?+?":"?+?csr.name); } } }
遍歷SET出來的是有序的,試了很多次都是這樣。沒有出現(xiàn)視頻中的亂序?
剛開始沒貼出Student類,不好意思。Student.courses 是Set
package?com.study.collection; import?java.util.HashSet; import?java.util.Set; /** ?*?學(xué)生類 ?**/ 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>(); } }
2016-04-10
兄弟你用的是List啊? 你連set包都沒引? 你跟我說你用了set?
2017-06-12
2016-07-04
我也是,加了5門過后還是不行。。
2016-05-08
我也這問題。。。
2016-04-10
你是用的是集合List,不是set集合,List是有序的