学生选课系统(基础版)

概念

现实生活中:很多的事物凑在一起
数学中的集合:具有共同属性的事物的总体
Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象

作用

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

体系结构

Collection接口、子接口以及实现类 

Collection接口

是List、Set和Queue的方法的父接口
定义了可用于操作List、Set和Queue的方法——增删改查

集合概述:

集合的概念

现实生活中:很多的事物凑在一起        有理数

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

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

集合的作用

        *在类的内部,对数据进行组织;

        *简单而快速的搜索大数量的条目;

        *有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素;

        *有的集合接口,提供了映射关系,可以通过关键字9key

)去快速查找到对应的唯一对象,而这个关键字可以是任意类型。

与数组的对比——为何选择集合而不是数组

        *数组的长度固定,集合长度可变

        *数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象。042f560b32b84ab29bd597f0593bae67.png

List接口及其实现类——ArrayList

        List是元素有序并且可以重复的集合,被称为序列

        List可以精确的控制每个元素的插入位置,或删除某个位置元素

        ArrayList——数组序列,是List的一个重要实现类

        ArrayList底层是由数组实现的

4-3学生选课——创建学生类和课程类

15739372310541e8abf716770baa3c80.png

e1b5a14907494a3883280df8517e6f91.png 

4-4学生选课——添加课程

b9de9176f0514bbbb738834d3165cf3f.png 

 4-5学生选课——添加课程2

9fd8b27b9faf4cef8b2180f7107ef3d3.png

8bb8a4b803a7403d85728c0ddb2120d5.png 

fa7b7574be0d411a98865ed520dc519f.png 

 4-6学生选课——课程查询

b7adec923fe9456caa9b718bca73d8a5.png

54243d5bded24377a1ce301f0ab356e4.png 

4-7学生选课——课程修改

cb1652dac4704e5faa46213216f1377e.png

4a11ebd180f34f519e2bff2fcdd502e0.png 

 4-8学生选课——课程删除

c0e37d6834ab431cbf1c1987516884af.png

4-9学生选课——应用泛型管理课程1

9e77feb5cbb34ca983a9871a8668c62d.png

7c35c7ed8e7140ab8135d30e8397c18e.png

6ca3745da33b4b32b7cca402f86ba8ec.png  

a9d4066f10ff4e029937005221acf96a.png 

 4-10学生选课——应用泛型管理课程2

60aea5615f23497eb50d7a06749194bf.png

 

 

4-11学生选课——通过Set集合管理课程

Set接口及其实现类——HashSet

        Set是元素无序并且不可以重复的集合,被称为集

        HashSet——哈希类,是Set的一个重要实现类

第五章java中的集合框架(中)

5.1:Map&HashMap简介

Map接口   跟前两种的不同的是  前面两种一个一个出现的  Map接口是成对出现的

Map接口

Map提供了一种映射关系 ,其中的元素是以键值对(key-value)形式储存的 ,能够实现根据key快熟查询value

Map中的键值对以Entry类型的对象实例形式存在  

键(key)不可重复的   value值是可以的

每个键最多只能映射一个值 (value)

Map接口提供了分别返回key值集合 ,value值集合以及Entry(键值对)集合得方法

Map也是一样支持泛型的 形式如下  Map(k,v)

HashMap类  

HashMap 是Map得一个重要的实现类  ,基于哈希表实现

HashMap中得Entry对象是无序排列得  

Key值为null得映射  (key值不可重复)

5.2:学生选课---使用Map中添加学生

ece4fd18e0da4225ac92ce09f0d06b09.png

f5b7b532192c4a8e9bf00704efcc91b2.png 

9fa45b4f498c484d9a3a80de85aea722.png 

75a777a5697c4c53839d5587289d3d34.png 

 

显示创造一个Scanner对象来获取学生从键盘中输入的值    在使用for循环来遍历  再使用get方法来哎获取 学生的id  在使用for循环来判断是学生输入的数  是否为空   如果为空的话  就是用next获取学生输入的名字 再new对象来创建一个新的对象  需要传入两个参数  也是键值对  一个是传入一个  int类型和一个String类型  然后储存学生的信息

ketSet方法  返回Map中的所有“键”的Set集合 

遍历keySet,取得每一个键 ,再调用方法来取得每一个间的value

最终 Set集合是没有顺序的  

5.3:学生选课---删除Map中的学生

f03a907231374d7d8b48ea4763ba8e01.png

2dc19fbaf38749b3865f081af5d2fb5f.png 

a2943ca64dc148d0a7ae82645e6bceda.png 

 还是一样 先创建一个Scanner来获取学生中键盘中输入的值  在使用if语句来判断是否有学生的信息    还是跟Set一样使用remove来删除指定信息   先是运行前面的操作 如果显示有学生的信息 就使用remove语句来删除学生的信息

5.4:学生选课---修改Map中的学生

061e00279a86438d8b17691a9d2671cb.png

8c74227cdc5f4494909832a894432d04.png  

还是一样 先是创建一个Scanner来获取学生从键盘中输入的值   使用while循环来   然后使用next方法   再是使用if语句来判断是否为空 如果为空的话 就打印输出     如果显示没有的话 就需要创建一个学生id    就需要提供新的已经存在的学生姓名   再是使用Scanner来获取键盘上输入的值  调用put方法来修改信息 

第六章java中的集合框架(下)

6.1:学生选课---判断List中课程是否存在

b80fbf52942244129603eae00f6360a5.png

81c22702eb0a4cfc9162f7f4b7e4f676.png 

 显示使用get方法选择指定位置是否是该课程     使用cantains方法来判断是否包含该课程 如果是的话就打印 然后再输出是否有相应课程   再看情况打印出  true或者false

6.2:学生选课---判断Set中课程是否存在

2cffce5cb68b4ea48260f9c0a04dc13c.png

3ea1f2c455484ddcbdd162e753648042.png 

 

先是new一个对象    然后再是创建一个Scaner获取从键盘中输入的值  再使用for循环来遍历  再是时使用next方法来到下一个  使用cantains方法来判断是否包含该课程

6.3:学生选课---获取List中课程的位置 

fccf08cfb4bd476a80836445c58ca7d3.png

b5d5073206aa4836b8ab512584f015b8.png  

获取课程的位置是需要通过indexOf方法来获取某元素的位置

先是使用if语句判断 然后再通过indexOf方法来获取某元素的位置  括号中输入你想获取课程的索引位置  然后再依次输出 

 

6.4:学生选课---判断Map中是否包含指定的键值对

a4b6a483b83242a3982ecaa0dae26010.png

8ff73c71fc864ac59806ecac87af115c.png  

再Map中使用containsKey()方法来判断是否包含某个Key值   用containsValue()方法  ,来判断是否包含某个Value值   还是一样创建一个Scaner的对象 获取学生从键盘中输入的值  然后再是使用if语句来判断从键盘上输入的id是否存在    获取键盘中输入的id  如果存在的话  就依次输出打印

6.5:学生选课---Collections工具类

a7e2e4dc4ab1468598bea69c373bdc82.png 

Collections工具类 是java集合框架中,用于操作对象的工具类  也是java集合框架的成员  

其中有sort(排序)方法

泛型是不能使用基本数据类型的   如果使用的话就会报错    需要使用相应的包装类  

需要插入十个100以内的不重复的整数   需要使用for循环来操作    为了保证不重复需要嵌套do...wheil循环    为了do...wheil循环中保证其中的数不重复 需要使用contains来处理

添加成功后需要使用foreach循环来去迭代每一个元素  然后打印输出  调用cCoolections的sort方法 ()括号内需要传入你想排序的变量名  然后再主方法new对象 然后调用方法Sort方法  再输出 这样的话就先排序好的顺序

6.6:学生选课---尝试对学生序列排序

如果使用sort方法的话  跟之前一样使用的话  就会报错  会爆出不适用于该参数     sort方法是需要必须实现Comparable接口

6.7:Comparable接口

在java中想要排序  需要两个对象是可以比较的   Comparable  -----默认比较规则   Comparator  临时比较规则  

Comparable接口----可比较的 

实现该接口表示:这个类的实例可以比较大小,可以进行自然的排序  

定义了默认的比较规则

其实现类需要实现compareTo()方法

compareTo()方法返回证书表示大,负数表示小 0表示相等

Comparator接口  比较工具接口 

用于定义临时的比较规则  ,而不是默认的比较规则 

其实现类需要实现compare()方法

Comparator和Comparable都是java集合框架的成员

6.8:学生选课---实现学生序列排序

需要实现Comparable接口  需要设为一样的泛型    需要使用相应的方法   如果小的话 就会输出正整数  如果大的话  就会输出负整数  如果相等的话就会输出0  然后先创建一个对象 要把名字改为字符串类型  id需要改成一千以内的正整数  再是调用该方法   然后输出 就会输出该结果   输出出来的   都是按照id的正整数来排列的       排序规则是 先数字后字母  数字0~9字母a~z的顺序    数字是先从第一位数字来排序的   .

41d66df877864495a49303805441e1e8.png

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值