《Java工程师必读手册》——Java极客主义系列——Java代码精简之道(7)

简介: 《Java工程师必读手册》——Java极客主义系列——Java代码精简之道(7)

接上篇:https://developer.aliyun.com/article/1227321?spm=a2c6h.13148508.setting.18.48e04f0eaBVGWH


七、 利用Optional

 

在Java 8里,引入了一个Optional类,该类是一个可以为null的容器对象。

 

1. 保证值存在

 

普通

 

image.png 

 

精简

 

image.png 

 

2. 保证值合法

 

普通

 

image.png 

 

精简

 

image.png 

 

3. 避免空判断

 

普通

 

image.png 

 

精简

 

image.png

 

八、 利用Stream

 

流(Stream)是Java 8的新成员,允许你以声明式处理数据集合,可以看成为一个遍历数据集的高级迭代器。流主要有三部分构成:获取一个数据源→数据转换→执行操作获取想要的结果。每次转换原有Stream对象不改变,返回一个新的Stream对象,这就允许对其操作可以像链条一样排列,形成了一个管道。流(Stream)提供的功能非常有用,主要包括匹配、过滤、汇总、转化、分组、分组汇总等功能。

 

1. 匹配集合数据

 

普通

 

image.png 

 

精简

 

image.png 

 

2. 过滤集合数据

 

普通

 

image.png 

 

精简

 

image.png 

 

3. 汇总集合数据

 

普通

 

image.png 

 

精简

 

image.png 

 

 

 

 

 

4. 转化集合数据

 

普通

 

image.png 

 

精简

 

image.png 

 

5. 分组集合数据

 

普通

 

image.png 

 

精简

 

image.png 

 

6. 分组汇总集合

 

普通

 

image.png 

 

精简

 

image.png 

 

7. 生成范围集合

 

Python的range非常方便,Stream也提供了类似的方法。

 

普通

 

image.png 

 

精简

 

image.png 

  

 接下篇:https://developer.aliyun.com/article/1227318?groupCode=java

相关文章
|
7天前
|
设计模式 监控 Java
Java多线程基础-11:工厂模式及代码案例之线程池(一)
本文介绍了Java并发框架中的线程池工具,特别是`java.util.concurrent`包中的`Executors`和`ThreadPoolExecutor`类。线程池通过预先创建并管理一组线程,可以提高多线程任务的效率和响应速度,减少线程创建和销毁的开销。
28 2
|
7天前
|
安全 Java
Java多线程基础-10:代码案例之定时器(一)
`Timer` 是 Java 中的一个定时器类,用于在指定延迟后执行指定的任务。它常用于实现定时任务,例如在网络通信中设置超时或定期清理数据。`Timer` 的核心方法是 `schedule()`,它可以安排任务在延迟一段时间后执行。`
27 1
|
3天前
|
存储 并行计算 安全
Java语言编写代码的技术性探讨
Java语言编写代码的技术性探讨
|
3天前
|
安全 Java API
Java语言中的代码安全性探讨
Java语言中的代码安全性探讨
|
5天前
|
Java C++
如何在JAVA代码中嵌入汇编
如何在JAVA代码中嵌入汇编
9 1
|
5天前
|
Java Linux
Linux下如何定位最耗CPU的JAVA代码
Linux下如何定位最耗CPU的JAVA代码
12 0
|
5天前
|
存储 Java 编译器
Java方法的基本内存原理与代码实例
Java方法的基本内存原理与代码实例
13 0
|
7天前
|
存储 Java 调度
Java多线程基础-11:工厂模式及代码案例之线程池(二)
这篇内容介绍了Java多线程基础,特别是线程池中的定时器和拒绝策略。
20 0
|
7天前
|
Java 调度
Java多线程基础-10:代码案例之定时器(二)
Java 多线程基础中,定时器(Timer)的实现通常使用 `PriorityBlockingQueue` 和 `wait/notify` 机制来管理任务。
15 0
|
7天前
|
存储 安全 Java
Java多线程基础-9:代码案例之阻塞队列(二)
Java多线程基础教程系列中,介绍了如何实现一个简单的阻塞队列(非泛型版本)。
17 0