莫善
2015-11-14 22:18
为什么SetTest类中创建的属性是List集合?而不是Set呢?
用List知识用来存放备选课程,便于在选课的时候通过输入课程ID来选择课程,而在Student类中将course属性设为Set,无序性是通过学生选择的课程也就是course属性来体现的,在输出学生已选择课程的时候就体现出set的无序性
//SetTest中既创建了ArrayList实例,也有初始化Set实例,但是目的不一样 CourseSelectGeneric courseList =new CourseSelectGeneric(); courseList.CourseAdd(); courseList.getCourse(); //①初始化课程列表courseList,添加并显示可选课程
Student student001 =new Student("0203", "Happy"); //②实例化一个学生Happy ,并具有studentCourse实例容器set
以下是我整个SetTest的代码,直接调用Course类,跟老师的写法有点不用,但可能会比较直观,因为都在main方法里实现。可以参考参考,可能会对你有点灵感的作用,如果有什么可以互相交流一下。
package com.imooc.season3.CollectionDemo; import java.util.List; import java.util.Scanner; /* * SetDemo是测试set接口类的一个demo * ①显示可选课程--借用CurseSelectGeneric * ②学生实例 * ③学生选择课程 * ④显示学生选择的课程 * 最佳的方法是main中运行的步骤提取出来,只在 main中调用 */ public class SetDemo { public static void main(String[] args){ CourseSelectGeneric courseList =new CourseSelectGeneric(); courseList.CourseAdd(); courseList.getCourse(); //①显示可选课程 Student student001 =new Student("0203", "Happy"); //②实例化一个学生Happy ,并具有studentCourse实例容器set Scanner input =new Scanner(System.in); System.out.println("欢迎"+student001.studentName+"选课"); System.out.println("请按照列表输入三门课程"); System.out.println("================"); for(int i=0;i<3;i++){ System.out.println("请输入第"+(i+1)+"门课程"); String scr=input.next(); //保存键盘输入的字符串内容 for(int y=0;y<courseList.courseSelect_v1.size();y++){ //遍历List容器的课程 Course tmpCr = courseList.courseSelect_v1.get(y); //获取每一个课程的ID 号 if(scr.equals(tmpCr.courseID)){ student001.studentCourse.add(tmpCr); } } } System.out.println("================"); System.out.println("你选择了如下课程:"); for(Course scr :student001.studentCourse){ //HashSet类没有get(i)method,因为set是无序排列的,只能用foreach遍历 System.out.println(scr.courseID+":"+scr.course); } } }
那个创建List的集合是为了储存待选课程的
真正用到SET集合的是students 类中的 courese 属性
Java入门第三季
409792 学习 · 4340 问题
相似问题