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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Set無(wú)序性問(wèn)題

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import java.util.Scanner;


public class TestSet {

? ? public List<Course> courseToSelect;

? ? public TestSet() {

? ? this.courseToSelect=new ArrayList<Course>();

? ? }

? ??

public void testAdd() {

?

Course cr1=new Course("1","數(shù)據(jù)結(jié)構(gòu)");//創(chuàng)建一個(gè)課程對(duì)象

//添加方法一

courseToSelect.add(cr1);//通過(guò)調(diào)用add方法添加到被選課程List中去

Course temp=(Course) courseToSelect.get(0);/*List與數(shù)組一樣起

始位置都是0,剛剛只插入了一個(gè)元素。當(dāng)對(duì)象被添加進(jìn)集合中時(shí)會(huì)忽略它本來(lái)的類型,被

當(dāng)做Object類,因此當(dāng)它從集合中取出時(shí)也是一個(gè)Object類,所以要用(Course)將

它強(qiáng)制轉(zhuǎn)化為Course類.

*/

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

?

?

?

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

//添加方法2

courseToSelect.add(0, cr2);/*這樣可以把第0位置cr1擠到第1位置去*/

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

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

?

?

/* courseToSelect.add(cr1);//此處驗(yàn)證List中元素可以重復(fù)

Course temp0=(Course) courseToSelect.get(2);

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

?


? ? ?Course[] cr3= {new Course("3","離散數(shù)學(xué)"),new Course("4","匯編語(yǔ)言")};

? ? ?//插入方法3將用Arrays.asList()方法把數(shù)組cr3變成數(shù)組序列,并插入數(shù)組序列中

? ? ?courseToSelect.addAll(Arrays.asList(cr3));

? ? ?Course temp3=(Course) courseToSelect.get(2);

? ? ?Course temp4=(Course) courseToSelect.get(3);

? ? ?//System.out.println("添加了兩門新課程:"+temp3.id+":"+temp3.name+

? ? // ?";"+temp4.id+":"+temp4.name);

? ? ?

? ? ?

? ? ?Course[] cr4= {new Course("5","高等數(shù)學(xué)"),new Course("6","大學(xué)英語(yǔ)")};

? ? ?//插入方法4,將cr4插入到數(shù)組序列的指定位置

? ? ?courseToSelect.addAll(2,Arrays.asList(cr4));

? ? ?Course temp5=(Course) courseToSelect.get(4);

? ? ?Course temp6=(Course) courseToSelect.get(5);

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

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

}

?

/**

? ? ? * 通過(guò)for each方法訪問(wèn)集合元素

? ? ? * for each 方法實(shí)際上是迭代器方法一種簡(jiǎn)便的寫法

? ? ? * 哈

? ? ? * */

? ? ?public void testForEach() {

? ? System.out.println("有如下課程可供選擇(通過(guò)for each方法訪問(wèn)):");

? ? for(Object obj:courseToSelect) {//這里為什么要用Object類前面講過(guò)

? ? Course cr=(Course) obj;

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

? ? }

? ??

? ??

? ? ?}

?

? ? ?

? ??

public static void main(String[] args) {

// TODO Auto-generated method stub

? ? ? ? TestSet st=new TestSet();

? ? ? ? st.testAdd();

? ? ? ? st.testForEach();

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

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

? ? ? ? //創(chuàng)建一個(gè)Scanner對(duì)象,用來(lái)接收輸入的課程ID。

? ? ? ? Scanner console=new Scanner(System.in);

? ? ? ? for(int i=0;i<3;i++) {

? ? ? ? System.out.println("請(qǐng)輸入課程ID");

? ? ? ? String courseId=console.next();

? ? ? ? for(Course cr:st.courseToSelect) {

? ? ? ? if(cr.id.equals(courseId=courseId)) {

? ? ? ? //student.course.add(null);//Set中可以添加空對(duì)象

? ? ? ? student.course.add(cr);//測(cè)試Set是否可以重復(fù)添加。

? ? ? ? student.course.add(cr);//course是Set的對(duì)象,此操作為把符合課程ID的元素添加到Set中去。

? ? ? ? }

? ? ? ? }

? ? ? ? }

? ? ? ? //打印輸出,學(xué)生所選的課程!

? ? ? ? st.testForEachForSet(student);

}

public void testForEachForSet(Student student) {

System.out.println("共選擇了:"+student.course.size()+"門課程!");//結(jié)果表明Set中可以添加重復(fù)的元素不會(huì)報(bào)錯(cuò),但重復(fù)元素只記錄一次。

? ? for(Course cr:student.course) {/*循環(huán)遍歷Set中的每一個(gè)元素只能用foreach方法和iterator方法

? ? ? ? ? ?不能調(diào)用get方法,因?yàn)镾et本身無(wú)序不可能查詢索引位置上的指定元素只能一個(gè)個(gè)迭代出來(lái),因?yàn)镾et無(wú)序所以每一次迭代的結(jié)果

? ? ? ? ? ?都不同。*/

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

? ? ? ? ? ?}

? ? ?}

? ? ?


}

我的代碼跟著老師一步步打的應(yīng)該沒(méi)問(wèn)題,但是運(yùn)行時(shí)輸入同樣的課程ID每次結(jié)果都相同,例如“4 1 2”,每次都是對(duì)應(yīng)的課程按順序出來(lái),

Set不應(yīng)該是無(wú)序的嗎,還是說(shuō)因?yàn)镋clipse版本的不同Set的功能有所變化,我的eclipse版本是2017版的。

正在回答

4 回答

是否是Set類型取決于 Student.java?下,你是否給學(xué)生類定義了Set類。

Student.java中Student類代碼如下?注意加粗部分!



import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

/**

?* 學(xué)生類

?* @author lenovo

?*

?*/

public class Student {


public String id;

public String name;

//給Set添加了泛型

public Set<Course>courses;

public Student(String id,String name) {

this.id = id;

this.name = name;

this.courses = new HashSet<Course>();

}??

}


0 回復(fù) 有任何疑惑可以回復(fù)我~

我記得有點(diǎn)模糊,我們期末實(shí)訓(xùn)的時(shí)候有個(gè)老師說(shuō)Set集合按照哈希算法進(jìn)行存儲(chǔ),如果一個(gè)值的哈希算法的出來(lái)的值是固定不變的,那就不會(huì)改變存儲(chǔ)的位置。不是說(shuō)這次輸入1,2,3得出來(lái)3,2,1下次輸入1,2,3的出來(lái)的就是1,3,2,而是因?yàn)樗墓V禌](méi)有變,存儲(chǔ)的位置也就沒(méi)有變。如果說(shuō)錯(cuò)了也請(qǐng)大神進(jìn)行指正,謝謝哈。

0 回復(fù) 有任何疑惑可以回復(fù)我~

我也是這樣的結(jié)果,每次輸出的結(jié)果都是同樣的無(wú)序。比如說(shuō)我輸入1、2、3,每次都是輸出2、1、3

0 回復(fù) 有任何疑惑可以回復(fù)我~

多試幾次,可能你運(yùn)氣比較好,順序是一樣的

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕移動(dòng)8447653 提問(wèn)者

這跟運(yùn)氣沒(méi)關(guān)系吧,我大概輸了7,8次了每次順序都一樣的這概率也太低了吧,有沒(méi)有可能是版本的問(wèn)題? 還有我Map表輸出的結(jié)果也永遠(yuǎn)是順序的。
2018-07-05 回復(fù) 有任何疑惑可以回復(fù)我~
#2

超時(shí)空的狩獵 回復(fù) 慕移動(dòng)8447653 提問(wèn)者

我也是
2018-07-19 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
Java入門第三季
  • 參與學(xué)習(xí)       409764    人
  • 解答問(wèn)題       4543    個(gè)

Java中你必須懂得常用技能,不容錯(cuò)過(guò)的精彩,快來(lái)加入吧

進(jìn)入課程

Set無(wú)序性問(wèn)題

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)