第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Set是無序的

http://img1.sycdn.imooc.com//5dd507f10001652c09171033.jpg

為什么我每次運行都是2、4、1這個順序,不是應該變嗎?

代碼如下:

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>();

}


/**

* 用于往coursesToSelect中添加備選課程

*/

public void testAdd() {

// 創(chuàng)建一個課程對象,并通過調用add方法,添加到備選課程List中

Course cr1 = new Course("1", "數(shù)據(jù)結構");

coursesToSelect.add(cr1);

Course temp = (Course) coursesToSelect.get(0);

// System.out.println("添加了課程:" + temp.id + ":" + temp.name);


Course cr2 = new Course("2", "C語言");

coursesToSelect.add(0, cr2);

Course temp2 = (Course) coursesToSelect.get(0);

// System.out.println("添加了課程:" + temp2.id + ":" + temp2.name);


// coursesToSelect.add(cr1);

// Course temp0 = (Course) coursesToSelect.get(2);

// System.out.println("添加了課程:" + temp.id + ":" + temp.name);


// 以下方法會拋出數(shù)組下標越界異常

// Course cr3 = new Course("3", "test");

// coursesToSelect.add(4, cr3);


Course[] course = { new Course("3", "離散數(shù)學"), 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[] course2 = { new Course("5", "高等數(shù)學"), new Course("6", "大學英語") };

coursesToSelect.addAll(2, Arrays.asList(course2));

Course temp5 = (Course) coursesToSelect.get(2);

Course temp6 = (Course) coursesToSelect.get(3);

// System.out.println("添加了兩門課程:" + temp5.id + ":" +

// temp5.name + ";" + temp6.id + ":" + temp6.name);


}


/**

* 通過for each方法訪問集合元素

*?

* @param args

*/

public void testForEach() {

System.out.println("有如下課程待選(通過for each訪問):");

for (Object obj : coursesToSelect) {

Course cr = (Course) obj;

System.out.println("課程:" + cr.id + ":" + cr.name);

}

}


/**

* @param args

*/

public static void main(String[] args) {

SetTest st = new SetTest();

st.testAdd();

st.testForEach();

// 創(chuàng)建一個學生對象

Student student = new Student("1", "小明");

System.out.println("歡迎學生:" + student.name + "選課!");

// 創(chuàng)建一個Scanner對象,用來接收從鍵盤輸入的課程ID

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);

/**

* Set中,添加某個對象,無論添加多少次, 最終只會保留一個該對象(的引用), 并且,保留的是第一次添加的那一個

*/

// student.courses.add(null);

student.courses.add(cr);

}

}

}

st.testForEachForSet(student);

}


public void testForEachForSet(Student student) {

// 打印輸出,學生所選的課程!

//System.out.println("共選擇了:" + student.courses.size() + "門課程!");

for (Course cr : student.courses) {

System.out.println("選擇了課程:" + cr.id + ":" + cr.name);

}

}


}


正在回答

2 回答

你多添加幾門課程,隨機量變大,就容易看出來了= =?

三門課也就

C3=3!=3(3一1)(3一2)=3X2X1=6種組合

0 回復 有任何疑惑可以回復我~
#1

辰_宿 提問者

我試過添加五門課但是for each后都是一樣的
2019-11-29 回復 有任何疑惑可以回復我~
#2

IEwuIL7 回復 辰_宿 提問者

我剛拿我的跑了一下,確實是無序的,你的student.courses.add(cr);有兩個,刪掉一個,在測試一下
2019-11-29 回復 有任何疑惑可以回復我~
#3

IEwuIL7 回復 辰_宿 提問者

https://www.zhihu.com/question/28414001 這個問題的第三個答主BWH.Steven結尾的測試很好的解答了你的問題,應該是按照你輸入的順序,來進行“有序”的輸出了是吧?并非是你輸入214,系統(tǒng)輸出124,而是214,當你按照我前面的回復測試沒問題之后,你就暫時理解為:并不能依賴HashSet作為有序排列
2019-11-29 回復 有任何疑惑可以回復我~

就是隨機的,多試幾次就變了

0 回復 有任何疑惑可以回復我~
#1

辰_宿 提問者

試了好多次,一樣的
2019-11-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409768    人
  • 解答問題       4510    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

Set是無序的

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號