為什么我的輸出是反著的
package?frameWork; import?java.util.ArrayList; import?java.util.Arrays; import?java.util.List; import?java.util.Scanner; public?class?SetTest?{ ????public?List<ArrayListStudent>?coursesToSelect; ????public?SetTest()?{ ????????coursesToSelect?=?new?ArrayList<ArrayListStudent>(); ????} ????public?void?testAdd()?{ ????????//創(chuàng)建一個(gè)課程對象,并通過調(diào)用add方法,添加到備選課程List中 ????????ArrayListStudent?cr1?=?new?ArrayListStudent("1",?"數(shù)據(jù)結(jié)構(gòu)"); ????????coursesToSelect.add(cr1); ????????//這里添加(ArrayListStudent)的原因是對象存入集合后類型變?yōu)閛bject,這里強(qiáng)制轉(zhuǎn)換對象的類型 ????????ArrayListStudent?temp?=?(ArrayListStudent)?coursesToSelect.get(0); ????????//System.out.println("添加課程:"?+?temp.id?+?":"?+?temp.name); ????????ArrayListStudent?cr2?=?new?ArrayListStudent("2",?"Java"); ????????coursesToSelect.add(1,?cr2); ????????ArrayListStudent?temp2?=?(ArrayListStudent)?coursesToSelect.get(1); ????????//System.out.println("添加課程:"?+?temp2.id?+?":"?+?temp2.name); ????????//拋出數(shù)組下標(biāo)越界拋出異常 ????????//ArrayListStudent?cr3?=?new?ArrayListStudent("3","C++"); ????????//coursesToSelect.add(4,cr3); ????????ArrayListStudent[]?arrayListStudents?=?{ ????????????????new?ArrayListStudent("3",?"離散數(shù)學(xué)"),?new?ArrayListStudent("4",?"匯編語言") ????????}; ????????coursesToSelect.addAll(Arrays.asList(arrayListStudents)); ????????ArrayListStudent?temp3?=?(ArrayListStudent)?coursesToSelect.get(2); ????????ArrayListStudent?temp4?=?(ArrayListStudent)?coursesToSelect.get(3); ????????//System.out.println("添加課程:"?+?temp3.id?+?":"?+?temp3.name ????????//+?";"?+?temp4.id?+?":"?+?temp4.name); ????????ArrayListStudent[]?arrayListStudents2?=?{ ????????????????new?ArrayListStudent("5",?"微分幾何"),?new?ArrayListStudent("6",?"數(shù)值分析") ????????}; ????????coursesToSelect.addAll(2,?Arrays.asList(arrayListStudents2)); ????????ArrayListStudent?temp5?=?(ArrayListStudent)?coursesToSelect.get(2); ????????ArrayListStudent?temp6?=?(ArrayListStudent)?coursesToSelect.get(3); //????????System.out.println("添加課程:"?+?temp5.id?+?":"?+?temp5.name //????????????????+?";"?+?temp6.id?+?":"?+?temp6.name); ????} ????public?void?testForEach()?{ ????????System.out.println("有如下課程待選(通過for?each訪問):"); ????????for?(Object?obj?:?coursesToSelect)?{ ????????????ArrayListStudent?cr?=?(ArrayListStudent)?obj; ????????????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("你好!"?+?student.name?+?"請選課"); ????????//創(chuàng)建一個(gè)Scanner對象,接收鍵盤輸入的ID ????????Scanner?console?=?new?Scanner(System.in); ????????//創(chuàng)建一個(gè)循環(huán),循環(huán)三次,將輸入的課程id加入到學(xué)生選課中 ????????for?(int?i?=?0?;?i?<?3?;?i++)?{ ????????????System.out.print("請輸入課程id:"); ????????????String?courseID?=?console.next(); ????????????for?(ArrayListStudent?cr?:?st.coursesToSelect)?{ ????????????????if?(cr.id.equals(courseID))?{ ????????????????????student.arrayListStudents.add(cr); ????????????????} ????????????} ????????} ????????st.testForEachForSet(student); ????} ????public?void?testForEachForSet(Student?student)?{ ????????//循環(huán)完畢后打印輸出學(xué)生所選的課程 ????????for?(ArrayListStudent?cr?:?student.arrayListStudents)?{ ????????????System.out.println("選擇的課程為:"?+?cr.id?+?":"?+?cr.name); ????????} ????} }
輸出為:
有如下課程待選(通過for?each訪問): 課程:1:數(shù)據(jù)結(jié)構(gòu) 課程:2:Java 課程:5:微分幾何 課程:6:數(shù)值分析 課程:3:離散數(shù)學(xué) 課程:4:匯編語言 你好!章北海請選課 請輸入課程id:1 請輸入課程id:2 請輸入課程id:3 選擇的課程為:3:離散數(shù)學(xué) 選擇的課程為:2:Java 選擇的課程為:1:數(shù)據(jù)結(jié)構(gòu)
如圖,請問為什么我輸入的課程id是1,2,3? 但是輸出是確實(shí)3,2,1反著的。。
2021-02-10
你可以嘗試著多添加幾門課程,你會(huì)發(fā)現(xiàn)排列是無序的,并沒有什么正著來還是反著來