Java oop(2題):使用HashSet存儲5條內(nèi)容,用三種遍歷方式遍歷,學(xué)生選課系統(tǒng)

//作業(yè):1使用HashSet存儲5條內(nèi)容,使用三種遍歷方式進行遍歷內(nèi)容
/*方式1:迭代器遍歷*/
package a;
import java.util.*;
public class demo {
public static void main(String[] args) {
// 特點:
// 無序(存儲和讀取的順序有可能不一樣)
// 不允許重復(fù)(元素唯一)
// 沒有索引(不能夠通過下標訪問內(nèi)容)get()
Set s=new HashSet();
s.add("張三");
s.add("李四");
s.add("王五");
s.add("馬六");
s.add("李四");//因為set有不允許重復(fù)的特性,所以不能添加重復(fù)的內(nèi)容
students s1=new students(1,"張三",22);
s.add(s1);
//其沒有索引
//迭代器遍歷
Iterator i=s.iterator();
while(i.hasNext()){//判斷其下一個還有沒有內(nèi)容,如果有就循環(huán)
//沒有就不循環(huán)
System.out.println(i.next());//得到下一個內(nèi)容
}
}
}
class students{
public int ID;
public String name;
public float chengji;
public students(int iD, String name,float chengji) {
ID = iD;
this.name = name;
this.chengji=chengji;
}
public void way(){
System.out.println("我的編號是"+ID+"姓名是"+name+"成績是"+chengji);
}
}

/*方式2:使用foreach進行遍歷*/
package a;
import java.util.*;
public class demo {
public static void main(String[] args) {
Set s=new HashSet();
s.add("張三");
s.add("李四");
s.add("王五");
s.add("馬六");
s.add("李四");//因為set有不允許重復(fù)的特性,所以不能添加重復(fù)的內(nèi)容
students s1=new students(1,"張三",22);
s.add(s1);
for(Object j:s){
//判斷其數(shù)據(jù)類型,如果是String不改變,如果是students就將其向下轉(zhuǎn)型為students
//打印其屬性、
if(j instanceof students){
students x=(students)j;
System.out.println(x.name+":"+x.ID+":"+x.chengji);
}else{
System.out.println(j);
}
}
}
}
class students{
public int ID;
public String name;
public float chengji;
public students(int iD, String name,float chengji) {
ID = iD;
this.name = name;
this.chengji=chengji;
}
public void way(){
System.out.println("我的編號是"+ID+"姓名是"+name+"成績是"+chengji);
}
}

/*方式3:既然沒有下標,那就將集合轉(zhuǎn)為數(shù)組,數(shù)組有下標*/
package a;
import java.util.*;
public class demo {
public static void main(String[] args) {
Set s=new HashSet();
students s1=new students(1,"張三",22);
students s2=new students(2,"李四",24);
students s3=new students(3,"詩書",25);
students s4=new students(4,"畫唱",26);
students s5=new students(5,"我?guī)?#34;,27);
s.add(s1);
s.add(s2);
s.add(s3);
s.add(s4);
s.add(s5);
// 既然沒有下標,那就將集合轉(zhuǎn)為數(shù)組,數(shù)組有下標
Object[] os=s.toArray();//將集合轉(zhuǎn)為數(shù)組
for(int i=0;i<os.length;i++){
//也要判斷其類型,因為數(shù)組是Object類型的
if(os[i] instanceof students){
students x=(students)os[i];
System.out.println("姓名是:"+x.name+",我的編號是:"+x.ID+",成績是:"+x.chengji);
}else{
System.out.println(os[i]);
}
}
}
}
class students{
public int ID;
public String name;
public float chengji;
public students(int iD, String name,float chengji) {
ID = iD;
this.name = name;
this.chengji=chengji;
}
public void way(){
System.out.println("我的編號是"+ID+"姓名是"+name+"成績是"+chengji);
}
}


//學(xué)生選課系統(tǒng)
//定義學(xué)生類,定義課程類,添加學(xué)生集合課程集合,讓每個學(xué)生隨機選擇3門課程
//定義三個學(xué)生對象
//因為-個學(xué)生要選好幾個課程,所以我們的課程要聲明為集合
package a;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
public class demo{
public static void main(String[] args) {
xuesheng xs1=new xuesheng(1,"B站");?
xuesheng xs2=new xuesheng(2,"詩書");
xuesheng xs3=new xuesheng(3,"畫唱");
//學(xué)一個集合放入三個學(xué)生
ArrayList<xuesheng> arr=new ArrayList<xuesheng>();?
arr.add(xs1);arr.add(xs2);arr.add(xs3);
//初始化課程
kecheng1 kc1=new kecheng1("語文" );
kecheng1 kc2=new kecheng1("數(shù)學(xué)");
kecheng1 kc3=new kecheng1(" 英語");
kecheng1 kc4=new kecheng1("計算機");
kecheng1 kc5=new kecheng1( "Java");
//寫一個課程的集合
ArrayList<kecheng1> arr_kecheng=new ArrayList<kecheng1>();
arr_kecheng .add(kc1);arr_kecheng.add(kc2);arr_kecheng.add(kc3);
arr_kecheng.add(kc4);arr_kecheng.add(kc5);
//學(xué)生開始選擇課程,因為要選擇三門課程,所以將調(diào)用三次選擇課程的方法,那么可以使用
//for循環(huán)進行選擇
for(int j=0;j<3;j++){
for(int i=0;i<arr.size();i++){
//遍歷每個學(xué)生執(zhí)行其選擇課程的方法,但是課程的名稱是隨機的,所以我們
//可是使用隨機數(shù)來當(dāng)做課程的下標
//new Random: 隨機數(shù)的意思
//nextInt():得到隨機數(shù)
arr.get(i).xuanzekecheng(arr_kecheng.get
(new Random().nextInt(arr_kecheng.size())).kechengmingcheng);
}
//遍歷每個學(xué)生的課程
}
for(xuesheng j:arr){
j.toString();
}
}
}
class xuesheng<hs>{
int bianhao;
String name;//因為每個學(xué)生選的課程不只是一個課程,所以要聲明集合來存儲每個學(xué)生的課程
HashSet hs=new HashSet( ) ;
public xuesheng(int bianhao, String name) {
this . bianhao = bianhao;
this.name = name ;?
}//定義一個選擇課程的方法,
//因為學(xué)生要選擇課程,所以參數(shù)應(yīng)該是課程名稱,在選擇課程的方法中將傳入的課程名稱賦值
//給HashSet
public void xuanzekecheng(String kechengmingcheng){
hs.add(kechengmingcheng);}
@Override
public String toString() {Iterator is=hs.iterator();
while(is .hasNext()){
System. out. println(is .next()) ;}
System. out.println("學(xué)生 [編號=" + bianhao + ", 名字=" + name);
return"";
}
}
class kecheng1{
String kechengmingcheng;
public kecheng1(String kechengmingcheng) {
this . kechengmingcheng = kechengmingcheng;
}
}
