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

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

老師,為什么遍歷Set集合里的元素,一直都是有序的輸出呢?

package com.imooc.collection;


import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import java.util.Scanner;


import javax.swing.text.Style;


public class SetTest {

public List<Course> coursesToSelect;

private Scanner console;

public Student stu;

public SetTest(){

this.coursesToSelect=new ArrayList<Course>(); ? //初始化

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

}

/**

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

*/

public void testAdd(){

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

Course cr1=new Course("1","數(shù)據(jù)結(jié)構(gòu)");

coursesToSelect.add(cr1);

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

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

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

coursesToSelect.add(0, cr2);

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

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

//證明數(shù)據(jù)可重復(fù)

// coursesToSelect.add(cr1);

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

// System.out.println("添加了課程:"+temp0.getId()+":"+temp0.getName());

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

coursesToSelect.addAll(Arrays.asList(course));

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

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

//System.out.println("添加了兩門課程:"+temp3.getId()+":"+temp3.getName()+";"+temp4.getId()+":"+temp4.getName());

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

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

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

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

//System.out.println("添加了兩門課程:"+temp5.getId()+":"+temp5.getName()+";"+temp6.getId()+":"+temp6.getName()+"\n");

}

/**

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

* @param args

*/

public void testForEach(){

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

for(Object obj : coursesToSelect){

Course cr=(Course)obj;

System.out.println("課程:"+cr.getId()+":"+cr.getName());

}

}

/**

* 測試List的contains方法

*/

public void testListContains(){

//獲取備選課程序列的第0個元素

Course course=coursesToSelect.get(0);

//打印輸出coursesToSelect是否包含該course對象

System.out.println("取得課程:"+course.getName());

System.out.println("備選課程中是否包含該課程:"+course.getName()+","+coursesToSelect.contains(course));//運(yùn)行測試

//創(chuàng)建一個新課程對象,ID和名稱與course完全相同 ? ?

//(但它們是兩個完全不同的對象,course2并不包含在序列中,所以結(jié)果為false)

//若要為true,則只需重寫equals()方法即可

Course course2=new Course(course.getId(),course.getName());

System.out.println("新創(chuàng)建的課程:"+course2.getName());

System.out.println("備選課程中是否包含該課程:"+course2.getName()+","+coursesToSelect.contains(course2));//運(yùn)行測試

//現(xiàn)在要求從鍵盤接收一個課程名稱

System.out.println("輸入一個課程名稱:");

String name=console.next();

Course course3=new Course();

course3.setName(name);

System.out.println("備選課程中是否包含該課程:"+course3.getName()+","+coursesToSelect.contains(course3));//運(yùn)行測試

if(coursesToSelect.contains(course3)){

System.out.println("課程為:"+course3.getName()+" 的索引位置為:"+coursesToSelect.indexOf(course3));

}

}

//創(chuàng)建學(xué)生對象并選課

public void createStudentAndSelectCourse(){

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

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

System.out.println("歡迎學(xué)生:"+stu.getName()+"來選課!");

//循環(huán)接收3次輸入的數(shù)據(jù),存到學(xué)生信息的courses中去

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

System.out.println("請輸入要選擇的課程ID:");

//從鍵盤接收用戶輸入的課程ID

String courseId=console.next();

for(Course cr : coursesToSelect){

if(cr.getId().equals(courseId)){

stu.courses.add(cr);

//Set中添加某個對象,無論加多少次,

//最終只會保留一個該對象(的引用),

//并且保留的是第一次添加的那個

//stu.courses.add(cr);

}

}

}

}

/**

* 測試Set的contains方法

*/

public void testSetContains(){

System.out.println("請輸入該學(xué)生已選的課程名稱:");

String name=console.next();

Course course=new Course();

course.setName(name);

System.out.println("備選課程中是否包含該課程:"+course.getName()+","+stu.courses.contains(course));//運(yùn)行測試

}


/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub


SetTest st=new SetTest();

st.testAdd();

st.testListContains();

st.testForEach();

// st.createStudentAndSelectCourse();

// st.testSetContains();


// st.testForEachForSet(stu);

}

/**

* 打印輸出學(xué)生所選課程,證明無序

*/

public void testForEachForSet(Student stu){

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

for(Course cr : stu.courses){

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

}

}


}


正在回答

2 回答

可能你的set集合里迭代出來的序列與List集合迭代的序列是一樣的。你可以輸出一下set集合里對象的每個hashcode值來驗(yàn)證一下。具體百度set集合存儲原理和map集合存儲原理。

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

你的student類額

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

舉報

0/150
提交
取消

老師,為什么遍歷Set集合里的元素,一直都是有序的輸出呢?

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

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

幫助反饋 APP下載

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

公眾號

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