1、集合知识回顾
1.1 集合特点
提供了一种储存空间可变的储存模型,储存的数据容量随时可以发生改变。
1.2 集合类体系结构
单列集合和双列集合:
单列集合中:list和set区别(数据是否重复)
区分接口和实现类:颜色
2、Collections
2.1 Collections概述和使用
代码:ArrayList重写了toString方法,所以打印的是值,不是一个对象的内存地址。
2.2 Collection集合常用方法
代码:
可以存储重复的数据:
remove()
clear()
contains()
isEmpty()
2.3 Collection集合遍历
代码:
2.4 Collection使用步骤和图解
2.5 案例
代码:
学生类:
测试类:
- 创建集合对象
- 创建学生对象
- 把学生添加到集合
- 遍历打印
3、List
3.1 List集合概述和特点
代码:
遍历:
3.2 List集合的特有方法
代码:
遍历:
3.3 案例
代码:
学生类:
测试类:
3.4 并发修改异常
3.5 ListIterator
3.5 增强for循环
4、Set
4.1 Set集合概述和特点
代码:
4.2 哈希值
代码:
学生类:
测试类:
4.3 HashSet集合概述和特点
4.4 HashSet元素唯一性源码分析
4.5 常见数据结构之哈希表
4.6 HashSet案例
代码:
学生类:
测试类:
此时,并没有去除重复的数据,如下图:
解决方案:在学生类重写hashcode和 equals方法
4.7 LinkedHashSet集合
4.8 TreeSet集合
4.9 自然排序Comparable使用
4.10 比较器排序Comparator使用
5、泛型
5.1 泛形概述
代码:
5.2 泛形类
可以简化代码,比如下面定义一个泛型类,可以省略学生类和老师类的定义。
学生类:
老师类:
泛型类:
测试类:
5.3 泛形方法
普通类:
测试类:
改进泛型类:
改进泛型类测试:
改进泛型方法:
改进泛型方法测试:
5.4 泛形接口
泛型接口:
接口实现类:
测试类:
5.5 类型通配符
5.6 可变参数
代码:要求n个数的和,就要写n个方法,冗余
5.7 可变参数使用
代码:
6、Map
6.1 Map集合概述
代码:
6.2 Map集合基本功能
代码:
6.3 Map集合的获取功能
代码:
6.4 Map集合的遍历
代码:
6.5 案例
案例1
代码:
学生类:
测试类:
案例2
代码:
学生类
测试类:
问题:
解决:重写hashcode和equals
重写后结果:保证key唯一性
案例3
代码:
案例4
代码
案例5
代码:
7、Collections
7.1 概述及使用
3个字:工具类
代码demo:
7.2 案例
代码: