黑马程序员Java零基础视频教程_下部 (P1-P51)
- 1. 双列集合
-
- 1.1 初识双列集合
-
- 1.1.1 双列集合的特点
- 1.1.2 双列集合的体系结构
- 1.1.3 put
- 1.1.4 remove
- 1.1.5 clear
- 1.1.6 containsKey 与 containsValue
- 1.1.7 isEmpty 与 size
- 1.1.8 遍历方式
- 1.2 HashMap
-
- 1.2.1 HashMap案例一
- 1.2.2 HashMap案例二
- 1.3 LinkedHashMap
- 1.4 TreeMap
-
- 1.4.1 案例分析
- 1.5 源码解析
-
- 1.5.1 TreeMap源码解析
- 1.5.2 HashMap源码解析
- 1.6 可变参数
- 1.7 Collections
- 1.8 综合练习(集合的嵌套,斗地主等)
-
- 1.8.1 自动点名器1
- 1.8.2 自动点名器2
- 1.8.3 自动点名器3
- 1.8.4 自动点名器4
- 1.8.4 自动点名器5
- 1.8.5 省和市
- 1.8.6 斗地主
- 2. 创建不可变集合
- 3. Stream流
-
- 3.1 Stream流的中间方法
- 3.2 Stream流的终结方法
- 3.3 Stream流的练习
- 4. 方法引用
-
- 4.1 引用静态方法
- 4.2 引用成员方法
-
- 4.2.1 引用其他类的成员方法
- 4.2.2 引用本类的成员方法
- 4.2.3 引用父类的成员方法
- 4.3 引用构造方法
- 4.4 其他调用方式
-
- 4.4.1 使用类名引用成员方法
- 4.4.2 引用数组的构造方法
- 4.5 引用方法练习
1. 双列集合
1.1 初识双列集合
键:不可重复、唯一
值:可以重复
键值是一一对应的
1.1.1 双列集合的特点
- ①双列集合一次需要存一对数据,分别为键和值
- ②键不能重复,值可以重复
- ③键和值是一一对应的,每一个键只能找到自己对应的值
- ④键+值这个整体 我们称之为“键值对”或者“键值对对象”,在Java中叫做 Entry 对象
1.1.2 双列集合的体系结构
Map是双列集合的顶层接口,它的功能是全部双列集合都可以继承使用的
1.1.3 put
1.1.4 remove
1.1.5 clear
1.1.6 containsKey 与 containsValue
1.1.7 isEmpty 与 size
1.1.8 遍历方式
- 键找值
增强For
迭代器
Lambda表达式
- 遍历键值对
增强For
迭代器
Lambda表达式
- Lambda表达式
1.2 HashMap
- ①HashMap是Map里面的一个实现类。
- ②没有额外需要学习的特有方法,直接使用Map里面的方法就可以了。
- ③特点都是由键决定的:无序、不重复、无索引
- ④HashMap跟HashSet底层原理是一模一样的,都是哈希表结构
1.2.1 HashMap案例一
Student.java
main.java
1.2.2 HashMap案例二
1.3 LinkedHashMap
他爹就是HashMap
java程序零基础视频
- 由键决定:有序、不重复、无索引。
- 这里的有序指的是保证存储和取出的元素顺序一致
- 原理:底层数据结构是依然哈希表,只是每个键值对元素又额外的多了一一个双链表的机制记录存储的顺序。
1.4 TreeMap
- TreeMap跟TreeSet底层原理一样, 都是红黑树结构的。
- 由键决定特性:不重复、无索引、可排序
- 可排序:对键进行排序。
- 注意:默认按照键的从小到大进行排序,也可以自己规定键的排序规则
代码书写两种排序规则
- 实现Comparable接口, 指定比较规则。
Student.java
main.java
- 创建集合时传递Comparator比较器对象, 指定比较规则。
1.4.1 案例分析
需求:字符串"aababcabcdabcde"
请统计字符串中每一个字符出现的次数,并按照以下格式输出
输出结果: a(5)b(4)C(3)d(2)e(1)
1.5 源码解析
1.5.1 TreeMap源码解析
可以看看视频 这部分主要是源码组成讲解
1.5.2 HashMap源码解析
可以看看视频 这部分主要是源码组成讲解
1.6 可变参数
假如需要定义一一个方法求和,该方法可以灵活的完成如下需求:
计算2个数据的和
计算3个数据的和
计算4个数据的和
计算n个数据的和
在方法当中,如果出了可变参数以外,还有其他的形参,那么可变参数要写在最后
- 可变参数本质上就是一个数组
- 作用:在形参中接收多个数据
- 格式:
- 举例:
- 注意事项:
- 形参列表中可变参数只能有一个
- 可变参数必须放在形参列表的最后面
1.7 Collections
- java.util.Collections:是集合工 具类
- 作用: Collections不 是集合,而是集合的工具类。
1.8 综合练习(集合的嵌套,斗地主等)
1.8.1 自动点名器1
班级里有N个学生,实现随机点名器。
1.8.2 自动点名器2
1.8.3 自动点名器3
班级里有N个学生
要求:
被点到的学生不会再被点到。
但是如果班级中所有的学生都点完了,需要重新开启第二轮点名。
1.8.4 自动点名器4
1.8.4 自动点名器5
1.8.5 省和市
1.8.6 斗地主
第一节课
第二节课
2. 创建不可变集合
- 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。
- 当集合对象被不可信的库调用时,不可变形式是安全的。
简单理解:不想让别人修改集合中的内容
细节:当我们要获取一个不可变的Set集合时,里面的参数一定要 保证唯一性
细节2: Map里面的of方法,参数是有上限的,最多只能传递20个参数, 10个键值对
简化后:
简化后:
3. Stream流
startsWith
Steam大法
双列集合与要转成单列集合
1.单列集合
2.双列集合
3.数组
4.零散数据类型
3.1 Stream流的中间方法
注意1:中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程
注意2:修改Stream流中的数据,不会影响原来集合或者数组中的数据
filter
limit and skip
distinct and concat
类型转化
3.2 Stream流的终结方法
收集到数值中的方法。
收集到集合中的方法。
3.3 Stream流的练习
4. 方法引用
4.1 引用静态方法
转化成下面
4.2 引用成员方法
4.2.1 引用其他类的成员方法
引用成员方法
格式:
- ①其他类:
- ②本类:
- ③父类:
4.2.2 引用本类的成员方法
引用处不能是静态方法
视频链接
4.2.3 引用父类的成员方法
引用处不能是静态方法
视频链接
4.3 引用构造方法
引用构造方法
格式:
范例:
转换成下面
Actor
main
4.4 其他调用方式
4.4.1 使用类名引用成员方法
方法引用(类名引用成员方法)
格式:
需求:集合里面一些字符串,要求变成大写后进行输出
方法引用的规则:
- 需要有函数式接口
- 被引用的方法必须已经存在
- 被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致。
- 被引用方法的功能需要满足当前的需求
抽象方法形参的详解:
- 第一个参数:表示被引用方法的调用者,决定了可以引用哪些类中的方法
在Stream流当中,第一个参数一般都表示流里面的每一个数据。
假设流里面的数据是字符串,那么使用这种方式进行方法引用,只能引用String这个类中的方法 - 第二个参数到最后一个参数:跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的成员方法
4.4.2 引用数组的构造方法
引用数组的构造方法
格式:
范例:
练习:集合中存储一些整数,收集到数组当中
4.5 引用方法练习
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/20681.html