一、Java中的集合框架概括
集合概念
集合类:一种工具类,就像是容器,储存任意数量的具有共同属性的对象
集合的作用
在类的内部,对数据进行组织;
简单而快速的搜索大数量的条目;
有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素;
有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的的唯一对象,而这个关键字可以是任意类型。
与数组相比——为何选择集合而不是数组
数组的长度固定,集合长度可变
数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象
二、collection接口&List接口简介
Collection接口
是Lict、Set和Queue接口的父接口
定义了可用于操作List、Set和Queue的方法——增删改查
List接口及其实现类——ArrayList
List是元素有序并且可以重复的集合,被称为序列 >列表是元素有序并且可以重复的集合,被称为序列
List可以精确的控制每个元素的插入位置,或删除某个位置元素>ArrayList——数组序列,是List的一个重要实现类 >列表可以精确的控制每个元素的插入位置,或删除某个位置元素
ArrayList——数组序列,是List的一个重要实现类
ArrayList底层是由数组实现的 >arrayist底层是由数组实现的
三、学生选课——创建学生类和课程类
四、学生选课---备选课程Ⅰ
添加了cr1、cr2,长度为2了,要是写4会怎样呢?
报错,数组下标越界
coursesToSelect长度为2,能够访问的位置只有0、1,add方法是在可以访问的位置上将相应元素插入进去,而原来位置上和之后元素都往后一位,如果传递的Index值等于容量,那么就会在当前List队尾将元素插入进去,当访问位置大于2时就会报数组下标越界异常,同样,当访问位置小于0也会报数组下标越界异常
五、学生选课---添加课程Ⅱ
六、学生选课——课程查询
方法一:size
我们复制cr1,复制在C语言之后,因为是在C语言之后,所以索引位置改成2
发现变成了1课程和3课程
因为重复添加的课程1的索引位置是2,而添加的课程3和4时,将他们添加到了被重复添加的课程1的后面,此时的3课程的索引位置应该是3,而4课程的索引位置应该是4
方法二:迭代器(Iterator)
方法三:for each方法
七、学生选课——课程修改
使用set方法修改
我们将重复添加的课程1改为课程7:毛概
课程八、学生选课——课程删除
方法一:remove方法取得位置元素传入
方法二:remove方法删除索引位置上的元素
方法三:removeAll方法
九、学生选课——应用泛型管理课程Ⅰ
能否向List中添加字符串呢?
泛型
十、学生选课——应用泛型管理课程Ⅱ
新建类,让其继承course类
选择它的超类为course
发现编译器报错了
因为Childcourse继承了course类型,course有含参构造器
所以编译器就不会自动添加一个隐式的无参构造器,在子类中又必须得调用父类的隐式构造器,
所以报错,我们可以手动在course类中添加一个无参构造器
注意:
基本类型会报错
必须要使用包装类
十一、学生选课——通过Set集合管理课程
在学生类中创建泛型