為什么遍歷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添加單個(gè)課程元素
Course?cr1?=?new?Course("1","數(shù)據(jù)結(jié)構(gòu)");
coursesToSelect.add(cr1);
//向List中指定索引位置添加單個(gè)課程元素
Course?cr2?=?new?Course("2",?"C語言");
coursesToSelect.add(0,?cr2);
//用List的addAll方法添加多個(gè)課程元素
Course[]?course?=?{new?Course("3",?"離散數(shù)學(xué)"),new?Course("4",?"匯編語言")};
//使用工具類Arrays的asList將數(shù)組轉(zhuǎn)化為List元素
coursesToSelect.addAll(Arrays.asList(course));
//用List的addAll方法向List中的指定位置添加多個(gè)課程元素
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)建一個(gè)學(xué)生對象
Student?student?=?new?Student("1",?"小明");
System.out.println("歡迎學(xué)生"?+?student.name?+?"選課");
//創(chuàng)建一個(gè)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
package?test; import?java.util.HashSet; import?java.util.LinkedHashSet; import?java.util.Set; import?java.util.TreeSet; public?class?Test24?{ public?static?void?main(String[]?args)?{ Set<String>?s?=?new?HashSet<>(); s.add("5"); s.add("7"); s.add("6"); s.add("4"); s.add("8"); for?(String?integer?:?s)?{ System.out.println(integer); } } }2016-07-04
我也是,加了5門過后還是不行。。
2016-05-08
我也這問題。。。
2016-04-10
你是用的是集合List,不是set集合,List是有序的