//创建学生类
import java.util.HashSet;
import java.util.Set;
public class student {
String id; //学号
String sname; //学生姓名
public Set<course> courses; //学生备选课程属性(添加泛型)
public student(String id,String sname){
this.id=id;
this.sname=sname;
this.courses=new HashSet<course>(); //初始化courses属性,将其构造为HashSet类型(实例化);
}
}
//创建课程类
public class course {
String id; //课程号
String cname; //课程名
public course(String id,String cname){
this.id=id;
this.cname=cname;
//重写course类的构造方法,并且传入参数
}
}
//实现待选课程的Set集合类
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class SetTest {
public List<course> coursesToSelect;
private static Scanner scanner;
//初始化coursesToselect属性
public SetTest(){
coursesToSelect=new ArrayList<course>();
}
//实现添加课程方法
public void add(){
course c1=new course("1","数据结构");
coursesToSelect.add(c1);
course c2=new course("2","c语言");
coursesToSelect.add(c2);;
course []c3 ={new course("3","大学英语"),new course("4","高等数学")};
coursesToSelect.addAll(Arrays.asList(c3));
course []c4 ={new course("5","离散学"),new course("6","大学物理")};
coursesToSelect.addAll(Arrays.asList(c4));
}
//打印待选课程
public void testForeachForSet(){
System.out.println("有如下课程待选:"+"(通过foreach访问)");
for(course obj:coursesToSelect)
System.out.println("课程:"+obj.id+" "+obj.cname);
}
//实例化
public static void main(String[] args) {
SetTest st=new SetTest();
st.add();
st.testForeachForSet();
student s1=new student("1","xhg");
System.out.println("欢迎学生"+s1.sname+"选课!");
scanner = new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.print("请输入课程号:");
String courseid=scanner.next();
for(course cr:st.coursesToSelect){
if(cr.id.equals(courseid))
s1.courses.add(cr);
}
}
for(course cr:s1.courses){
System.out.println("选择了课程:"+cr.id+" "+cr.cname);
}
}
}
测试结果如下图: