Java oop(2题):使用HashSet存储5条内容,用三种遍历方式遍历,学生选课系统

//作业:1使用HashSet存储5条内容,使用三种遍历方式进行遍历内容
/*方式1:迭代器遍历*/
package a;
import java.util.*;
public class demo {
public static void main(String[] args) {
// 特点:
// 无序(存储和读取的顺序有可能不一样)
// 不允许重复(元素唯一)
// 没有索引(不能够通过下标访问内容)get()
Set s=new HashSet();
s.add("张三");
s.add("李四");
s.add("王五");
s.add("马六");
s.add("李四");//因为set有不允许重复的特性,所以不能添加重复的内容
students s1=new students(1,"张三",22);
s.add(s1);
//其没有索引
//迭代器遍历
Iterator i=s.iterator();
while(i.hasNext()){//判断其下一个还有没有内容,如果有就循环
//没有就不循环
System.out.println(i.next());//得到下一个内容
}
}
}
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有不允许重复的特性,所以不能添加重复的内容
students s1=new students(1,"张三",22);
s.add(s1);
for(Object j:s){
//判断其数据类型,如果是String不改变,如果是students就将其向下转型为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:既然没有下标,那就将集合转为数组,数组有下标*/
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,"我帅",27);
s.add(s1);
s.add(s2);
s.add(s3);
s.add(s4);
s.add(s5);
// 既然没有下标,那就将集合转为数组,数组有下标
Object[] os=s.toArray();//将集合转为数组
for(int i=0;i<os.length;i++){
//也要判断其类型,因为数组是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);
}
}


//学生选课系统
//定义学生类,定义课程类,添加学生集合课程集合,让每个学生随机选择3门课程
//定义三个学生对象
//因为-个学生要选好几个课程,所以我们的课程要声明为集合
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,"画唱");
//学一个集合放入三个学生
ArrayList<xuesheng> arr=new ArrayList<xuesheng>();
arr.add(xs1);arr.add(xs2);arr.add(xs3);
//初始化课程
kecheng1 kc1=new kecheng1("语文" );
kecheng1 kc2=new kecheng1("数学");
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);
//学生开始选择课程,因为要选择三门课程,所以将调用三次选择课程的方法,那么可以使用
//for循环进行选择
for(int j=0;j<3;j++){
for(int i=0;i<arr.size();i++){
//遍历每个学生执行其选择课程的方法,但是课程的名称是随机的,所以我们
//可是使用随机数来当做课程的下标
//new Random: 随机数的意思
//nextInt():得到随机数
arr.get(i).xuanzekecheng(arr_kecheng.get
(new Random().nextInt(arr_kecheng.size())).kechengmingcheng);
}
//遍历每个学生的课程
}
for(xuesheng j:arr){
j.toString();
}
}
}
class xuesheng<hs>{
int bianhao;
String name;//因为每个学生选的课程不只是一个课程,所以要声明集合来存储每个学生的课程
HashSet hs=new HashSet( ) ;
public xuesheng(int bianhao, String name) {
this . bianhao = bianhao;
this.name = name ;
}//定义一个选择课程的方法,
//因为学生要选择课程,所以参数应该是课程名称,在选择课程的方法中将传入的课程名称赋值
//给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("学生 [编号=" + bianhao + ", 名字=" + name);
return"";
}
}
class kecheng1{
String kechengmingcheng;
public kecheng1(String kechengmingcheng) {
this . kechengmingcheng = kechengmingcheng;
}
}
