Java【7】工具包(集合框架、函数式编程、Optional容器)

1、集合与Collection集合接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重要知识架构:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
“泛型”——

泛型,即“参数化类型”。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

例如:

GenericClass<T>{}

一些常用的泛型类型变量:

E:元素(Element),多用于java集合框架
K:关键字(Key)
N:数字(Number)
T:类型(Type)
V:值(Value)

Java泛型详解(跳转)

2、List集合接口

Collection是一个顶级的接口,我们一般更常用List。
核心知识点:
在这里插入图片描述
如何使用List ?
在这里插入图片描述
在这里插入图片描述
集合->数组
在这里插入图片描述

3、LinkedList分析

注:本章中涉及代码实现部分没有截图,可以回XXT去看~
在这里插入图片描述
在这里插入图片描述

4、Map接口及其操作

只有继承自Collection的才能称之为集合。
Map它是键值对!不是集合!这一小节算是单独的一小章。
在这里插入图片描述
下面这张的概念易混淆:
在这里插入图片描述
在这里插入图片描述
基本操作示例——
在这里插入图片描述
注意下面程序的输出:
在这里插入图片描述

5、HashMap

在这里插入图片描述// 看不太懂 此处了解即可

6、Set集合接口

在这里插入图片描述
使用案例:
在这里插入图片描述
在这里插入图片描述

7、Iterator接口

迭代器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8、小结:Java集合框架优点

Java集合框架,是典型的面向接口编程的体现!!
在这里插入图片描述
<以上是Java集合框架全部内容,本文的第一部分完结>

9、函数式编程

下面这张概念图的第二句重点理解!
★ 函数的输出仅依赖于函数的本身,而不依赖于函数外部数据的状态,即为函数式编程!!!
在这里插入图片描述
理解函数式编程面向对象编程区别
在这里插入图片描述

10、Lambda表达式

在这里插入图片描述
(参数列表)-> {执行的表达式}
在这里插入图片描述
在这里插入图片描述

11、集合流 Stream API

API = 接口

补充:Java Enum原理(枚举类型)

public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE };

实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要构造新对象。因此,在比较两个枚举类型的值时,永远不需要调用equals方法,而直接使用"=="就可以了。
更多请参考这个链接

Stream学习参考Java 8 Stream

引入:
在这里插入图片描述
在这里插入图片描述
程序猿应该将精力放在具体的业务逻辑处理上!
(像SQL那样做事)

于是有了 集合流Stream ——
在这里插入图片描述
★ 总结:
Stream将集合中的元素进行流水线操作,达到出场销售的结果,并以新的集合来聚合Stream操作的结果(不影响原集合的结构)。
在这里插入图片描述
// 中间操作记录在下一小节(12)中

终止操作——
在这里插入图片描述
在这里插入图片描述
下面是 forEach方法 的用法 !forEach里面是一个函数。
在这里插入图片描述
在这里插入图片描述

12、Filter&Map&Sorted(中间操作)

在这里插入图片描述
在这里插入图片描述
= 一条流水线接一条流水线再接一条流水线······

①过滤
在这里插入图片描述
返回指定颜色的苹果:
在这里插入图片描述
(新办法)
在这里插入图片描述
★ 下图为上图的简写!(基于流的操作链!!)
在这里插入图片描述
在这里插入图片描述
返回指定颜色 && 大于等于重量的苹果:
在这里插入图片描述
下面这个图加了打印语句(一条流):
在这里插入图片描述
②映射

何为映射(map)?
举例说,将苹果重量收集为新集合(从苹果到苹果重量int的映射)。

在这里插入图片描述
下图等价于上图(用::更高级)——
在这里插入图片描述
注意, ::只能用于执行一个方法
在这里插入图片描述
// 注:灰色的是Java编辑器给的自动提示!这个编译器好棒(IDEA)

③排序
Comparator类中的comparing()方法。
reversed()方法表示倒序。
在这里插入图片描述
在这里插入图片描述

13、Collect(聚合)

在这里插入图片描述
在这里插入图片描述
★ 看这个——
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14、RemoveIf(移除)

removeIf()表示符合括号内条件的,被移除!!

// 而集合流的流操作表示符合条件的留下来。
在这里插入图片描述
在这里插入图片描述

15、函数式接口

在这里插入图片描述
在这里插入图片描述
☆ 跳转复习——Java集合流_编程题

16、Optional

参考链接:Java 8 Optional
问题引入——
在这里插入图片描述
在这里插入图片描述
替代方案:
在这里插入图片描述
Optional (Java 8 以后)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下图为两种写法,记后一种流操作即可:
在这里插入图片描述
在这里插入图片描述

17、Optional的Filter&Map

在这里插入图片描述
好好看上面代码左边的红色解释!!!!!
(代码在IDEA的样子如下)
在这里插入图片描述
在这里插入图片描述
前面是容器里有东西的话,执行操作;

下面这个是程序里没有东西时,执行!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
★ 获取Computer的usb版本,如果没有则返回UNKNOWN:
在这里插入图片描述
orElse()用法:若当前容器不为空,则返回容器中元素;若容器为空,则返回默认值。

☆ 跳转复习——Java_Optional_编程题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值