欢迎光临散文网 会员登陆 & 注册

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

2020-02-28 23:56 作者:诗书画唱  | 我要投稿

//作业: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;

}

}


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

分享到微博请遵守国家法律