分拣存储3-HashMap实现学生选课

本文通过一个学生选课的实例,详细介绍了如何利用HashMap实现分拣存储。设计了Course、Student、StuCourse三个类,并在Mytest类中实现了核心功能。在StuCourse类中,初始化List是必要的,以避免空指针异常。此外,HashMap作为存储结构,存储所有学生及其选修课程,遍历使用了增强for循环。这个设计旨在便于进行分拣存储,理解HashMap在数据组织中的应用。
摘要由CSDN通过智能技术生成

为加深分拣存储概念,熟练代码,写了一个学生选课demo
思路和前面基本一致,一共设计了四个类,Course类,Student类,分别封装了关于课程和学生的数据,StuCourse类,属性有学生姓名和List〈Course〉,以及核心代码类Mytest。

有以下几点需要注意:
1. StuCourse类中需要在构造方法中初始化List,无论有没有形参,不然会出现空指针异常
2. StuCourse类提供一个只带name的构造方法
3. map是唯一的,不需要每一次选课都新new一个map,所以要把它放在方法外面,map就涵盖了所有的学生以及学生对应选择的所有课程,不过我们这里运行都是只有一个学生
4. 遍历list的时候可以用加强for语句,也可以有迭代器,我都是用的foreach
5. last but not least ,一定要搞清楚这里的StuCourse类存在的必要,不直接把List〈Course〉设置为Student类的属性是为了方便进行分拣存储,为Map添加泛型

代码运行:
根据提示创建一个学生对象,然后进行选课,每次选择一个,可以继续选择,或者选择退出,如图
这里写图片描述
这里写图片描述

源代码:

/**
 * 课程类
 * @author wwyDEPP
 *
 */
public class Course {
   
    private String name;
    private String teacher;
    public Course() {
        // TODO Auto-generated constructor stub
    }
    public Course(String name, String teacher) {
        super();
        this.name = name;
        this.teacher = teacher;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTeacher() {
        return teacher;
    }
    public void setTeacher(String teacher) {
        this.teacher = teacher;
    }

}
import java.util.ArrayList;
import java.util.List;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值