当前位置:网站首页 > Java基础 > 正文

java程序零基础视频



黑马程序员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 遍历方式

  1. 键找值

增强For

 

迭代器

 

Lambda表达式

 
  1. 遍历键值对

增强For

 

迭代器

 

Lambda表达式

 
  1. 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底层原理一样, 都是红黑树结构的。
  • 由键决定特性:不重复无索引可排序
  • 可排序:对键进行排序
  • 注意:默认按照键的从小到大进行排序,也可以自己规定键的排序规则

代码书写两种排序规则

  1. 实现Comparable接口, 指定比较规则。

Student.java

 

main.java

 
  1. 创建集合时传递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. 可变参数本质上就是一个数组
  2. 作用:在形参中接收多个数据
  3. 格式:
  • 举例:
  1. 注意事项:
  • 形参列表中可变参数只能有一个
  • 可变参数必须放在形参列表的最后面

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 使用类名引用成员方法

 

方法引用(类名引用成员方法)
格式:
需求:集合里面一些字符串,要求变成大写后进行输出
方法引用的规则:

  1. 需要有函数式接口
  2. 被引用的方法必须已经存在
  3. 被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致。
  4. 被引用方法的功能需要满足当前的需求
    抽象方法形参的详解:
  • 第一个参数:表示被引用方法的调用者,决定了可以引用哪些类中的方法
    在Stream流当中,第一个参数一般都表示流里面的每一个数据。
    假设流里面的数据是字符串,那么使用这种方式进行方法引用,只能引用String这个类中的方法
  • 第二个参数到最后一个参数:跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的成员方法

4.4.2 引用数组的构造方法

引用数组的构造方法

格式:

范例:

练习:集合中存储一些整数,收集到数组当中

 

4.5 引用方法练习

在这里插入图片描述


                            

版权声明


相关文章:

  • 有java基础在学scala2024-10-30 14:58:04
  • 软件设计模式java基础2024-10-30 14:58:04
  • Java基础之简单投票程序2024-10-30 14:58:04
  • java基础代码设置图2024-10-30 14:58:04
  • java基础代码怎么写2024-10-30 14:58:04
  • java基础封装实例2024-10-30 14:58:04
  • java 基础都包括什么作用2024-10-30 14:58:04
  • java编程基础大作业2024-10-30 14:58:04
  • java没基础初学者2024-10-30 14:58:04
  • java 中基础类2024-10-30 14:58:04