为了账号安全,请及时绑定邮箱和手机立即绑定

Set集合创建

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

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
//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);
		}
		
	}
	

}



0 回复 有任何疑惑可以回复我~

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

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

Set集合创建

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信