用Java写一个简陋版学生选课系统

本文介绍了Java中的集合框架,包括集合的概念、在类中的作用以及Collection接口及其子接口(如List、Set和Queue)的特性。重点讲解了ArrayList和HashSet的区别,以及如何使用它们在学生选课场景中的应用。

集合框架
概念与作用
概念
现实生活中:很多的事物凑在一起

数学中的集合:具有共同属性的事物的总体

Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象

作用
在类的内部,对数据进行组织;
简单而快捷的搜索大数量的条目;
有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素
有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型
集合与数组的对比
数组的长度固定,集合长度可变
数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所有映射的具体对象
体系结构


Collection接口、子接口以及实现类
Collection接口
是List、Set和Queue的方法的父接口
定义了可用于操作List、Set和Queue的方法——增删改查
List接口及其实现类——ArrayList
List是元素有序并且可以重复的集合,被称为序列
List可以精确的控制每个元素的插入位置,或删除某个位置元素
ArrayList——数组序列,是List的一个重要实现类
ArrayList底层是由数组实现的
学生选课
创建学生类和课程类
创建项目imooc_collection_map_demo;
 

package imooc_collection_map_demo;
/*
 * 课程类
 */
public class Course {
 
	public String id;
	
	public String name;
	
	public Course(String id,String name) {
		this.id=id;
		this.name=name;
	}
}
package imooc_collection_map_demo;
 
import java.util.HashSet;
import java.util.Set;
 
/*
 * 学生类
 */
public class Student {
	public String id;
	
	public String name;
	
	public Set courses;
	
	public Student(String id,String name) {
		this.id=id;
		this.name=name;
		this.courses=new HashSet();
	}
}
package imooc_collection_map_demo;
 
import java.util.ArrayList;
import java.util.List;
/*
 * 备选课程类
 */
public class ListTest {
	/*
	 * 用于存放备选课程的List
	 */
	public List coursesToSelect;  //创建属性
	public ListTest() { //构造方法
		this.coursesToSelect =new ArrayList();
 
	}
	/*
	 * 用于往coursesToSelect中添加备选课程
	 */
	public void testAdd() {
		//创建一个课程对象,并通过调用add方法,添加到备选课程List中
		Course cr1=new Course("1","数据结构");
		coursesToSelect.add(cr1);
		//当一个对象存入集合都变成Object类型取出时需要类型转换
		Course temp = (Course) coursesToSelect.get(0);
		System.out.println("添加了课程:"+temp.id+":"+temp.name);
	}
	public static void main (String[]args) {
		ListTest It = new ListTest();
		It.testAdd();
	}
}

运行结果如下:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值