亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

HashSet的for-each 和 iterator 的遍歷為什么每次輸出的順序是一定的,不應該是無序的嗎?

HashSet的for-each 和 iterator 的遍歷為什么每次輸出的順序是一定的,不應該是無序的嗎?

慕粉3291149 2016-05-04 19:06:12
學生類: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(); }}測試類:import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;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(){ Course c1 = new Course("1","數據結構"); coursesToSelect.add(c1); Course c2 = new Course("2","C語言"); coursesToSelect.add(1,c2); Course[] c = {new Course("3","離散數學"),new Course("4","匯編語言")}; coursesToSelect.addAll(Arrays.asList(c)); } public void testForEach(){ System.out.println("有如下課程可以選:"); for(Course c : coursesToSelect){ System.out.println("課程:"+c.id+":"+c.name); } } public void testForEachForSet(Student stu){ for(Course c : stu.courses){ System.out.println("選擇了課程:"+c.id+":"+c.name); } } public void testIteratorForSet(Student stu){ Iterator<Course> it = stu.courses.iterator(); while(it.hasNext()){ Course c = it.next(); System.out.println("選擇了課程:"+c.id+":"+c.name); } } public static void main(String[] args) { SetTest st = new SetTest(); st.testAdd(); st.testForEach(); Student stu = new Student("1","小明"); System.out.println("歡迎學生:"+stu.name+"選課!"); Scanner in = new Scanner(System.in); for(int i=0;i<3;i++){ System.out.print("輸入你想選擇的課程:"); String choice = in.next(); for(Course c : st.coursesToSelect){ if(c.id.equals(choice)){ stu.courses.add(c); } } } st.testIteratorForSet(stu); }
查看完整描述

2 回答

?
慕仰7261054

TA貢獻8條經驗 獲得超2個贊

無序是指它每次存進去的東西的存儲地址不是按順序排列的,但是當你存進去之后段時間內它的hash地址是不會變的

查看完整回答
反對 回復 2016-06-02
?
慕粉_編程新手

TA貢獻6條經驗 獲得超0個贊

是根據你存儲進去的順序遍歷的

查看完整回答
反對 回復 2016-05-06
  • 2 回答
  • 0 關注
  • 2445 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號