【慕課筆記】第四章 JAVA中的集合框架(上) 第11節 通過Set集合管理課程
第11節 通過Set集合管理課程
Set介面及其實現類——HashSet
Set是元素無序並且不可以重複的集合,被稱為集
HashSet——雜湊集,是Set的一個重要實現類
案例功能說明
1、提供備選課程
2、建立學生物件,並給該學生新增三門課程(新增在學生的courses——Set型別的屬性中)
顯示備選課程
迴圈三次,每次輸入課程ID
往學生的courses屬性中新增與輸入的ID匹配的課程
輸出學生選擇的課程
Set 只能用 foreach iterator 方法,因為是無序的,不能指定位置得到值
List 能用 foreach iterator get 方法
package com.imooc.collection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class SetTest {
/**
* @param args
*/
public List<Course> coursesToSelect;
public SetTest(){
this.coursesToSelect=new ArrayList<Course>();
}
public void testAdd(){
Course cr1=new Course("1","資料結構");
coursesToSelect.add(cr1);
// Course temp=(Course)coursesToSelect.get(0);//物件存入集合都變成Object型別,取出時需要型別轉換
// System.out.println("新增了課程"+temp.id+":"+temp.name);
Course cr2=new Course("2","C語言");
coursesToSelect.add(0,cr2);
// Course temp1=(Course)coursesToSelect.get(0);
// System.out.println("新增了課程"+temp1.id+":"+temp1.name);
// coursesToSelect.add(cr1);
// Course temp6=(Course)coursesToSelect.get(2);//物件存入集合都變成Object型別,取出時需要型別轉換
// System.out.println("新增了課程"+temp6.id+":"+temp6.name);
//以下方法會丟擲陣列小標越界異常
//Course cr3=new Course("3","計算機網路");
//coursesToSelect.add(4,cr3);//目前陣列長度為2,只能訪問位置0、1,不能訪問位置3
Course[] course={new Course("3","離散數學"),new Course("4","組合語言")};
coursesToSelect.addAll(Arrays.asList(course));//將陣列轉換成List
// Course temp2=(Course)coursesToSelect.get(3);
// Course temp3=(Course)coursesToSelect.get(4);
// System.out.println("新增了課程"+temp2.id+":"+temp2.name);
// System.out.println("新增了課程"+temp3.id+":"+temp3.name);
Course[] course1={new Course("5","高等數學"),new Course("6","大學英語")};
coursesToSelect.addAll(2,Arrays.asList(course1));
// Course temp4=(Course)coursesToSelect.get(2);
// Course temp5=(Course)coursesToSelect.get(3);
// System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
// System.out.println("新增了課程"+temp4.id+":"+temp4.name);
// System.out.println("新增了課程"+temp5.id+":"+temp5.name);
}
public void testForEach(){
System.out.println("有如下課程待選(通過foreach遍歷):");
for(Object obj:coursesToSelect){ //先定義一個變數,然後是所要遍歷的集合
Course cr=(Course)obj; //當一個物件存入的時候,型別是忽略的;取出的時候往往需要強制轉換
System.out.println("課程"+cr.id+":"+cr.name);
}
}
public void testForEachForSet(Student student){
System.out.println("共選擇了"+student.courses.size()+"門課程");
for(Course cr:student.courses){
//列印輸出,學生所選的課程
System.out.println("課程"+cr.id+":"+cr.name);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SetTest st=new SetTest();
st.testAdd();
st.testForEach();
Student student=new Student("1","小明");
System.out.println("歡迎學生"+student.name+"來選課!");
//建立一個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);
student.courses.add(cr);//測試重複課程(Set集是不可重複的)
//Set中,新增某個物件,無論新增多少次,最終只會保留一個該物件
//並且保留的是第一次新增的那一個
}
}
}
//列印輸出,學生所選的課程
st.testForEachForSet(student);
}
}
相關文章
- 【慕課筆記】第四章 JAVA中的集合框架(上) 第10節 學生選課—應用泛型管理課程(二)筆記Java框架泛型
- 【慕課筆記】第四章 JAVA中的集合框架(上) 第3節 學生選課—建立學生類和課程類筆記Java框架
- 集合框架-Set集合框架
- 我的慕課實戰課程上線了
- Java集合框架List,Map,Set等Java框架
- Java集合框架隨筆Java框架
- Java集合 Collection、Set、Map、泛型 簡要筆記Java泛型筆記
- Java集合中的框架2Java框架
- Java中的Map集合學習筆記Java筆記
- 慕課網的中國式線上“慕課”模式模式
- Java中 集合框架概述Java框架
- 「譯」Java集合框架系列教程四:Set介面Java框架
- 【集合框架】Java集合框架綜述框架Java
- OCP課程9:SQL之使用集合運算子SQL
- Java 中的泛型 集合(List,Set) MapJava泛型
- 北航OS課程筆記--六、磁碟管理筆記
- 機器學習課程筆記機器學習筆記
- Java集合(1)一 集合框架Java框架
- 北航OS課程筆記--三、記憶體管理筆記記憶體
- 上課筆記大全筆記
- 【Java集合原始碼剖析】Java集合框架Java原始碼框架
- 【JAVA集合】JAVA集合框架及其常用方法Java框架
- Java 集合框架Java框架
- java集合框架Java框架
- 北航OS課程筆記--四、程序管理筆記
- 北航OS課程筆記--五、裝置管理筆記
- Java 集合學習筆記Java筆記
- python課程筆記Python筆記
- Java集合框架中的介面和類Java框架
- python學習筆記24_集合set( )Python筆記
- 慕課網大資料開發工程師課程大資料工程師
- Java集合(六) Set詳解Java
- Java相關課程系列筆記之一Java學習筆記Java筆記
- Java集合中List,Set以及Map等集合體系詳解(史上最全)Java
- Mooc下載器:中國大學mooc慕課影片課件課程下載工具,如何在電腦端下載中國大學mooc慕課影片課程課件資料到本地?
- Java集合框架系列教程一:集合框架簡介Java框架
- 【Java學習筆記】Collections集合Java筆記
- java之集合框架使用細節及常用方法Java框架