问答详情
源自:4-11 学生选课---通过 Set 集合管理课程

Set集合创建

为什么SetTest类中创建的属性是List集合?而不是Set呢?

提问者:莫善 2015-11-14 22:18

个回答

  • 刘旺
    2016-04-15 21:35:56

    用List知识用来存放备选课程,便于在选课的时候通过输入课程ID来选择课程,而在Student类中将course属性设为Set,无序性是通过学生选择的课程也就是course属性来体现的,在输出学生已选择课程的时候就体现出set的无序性

  • 梁XX
    2016-01-24 22:25:27

    //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);
    		}
    		
    	}
    	
    
    }



  • 奋斗的蚁族
    2015-11-29 14:26:36

    那个创建List的集合是为了储存待选课程的

    真正用到SET集合的是students 类中的 courese 属性