JDK1.8新特性Lambda表达式简化if-else里都有for循环的优化方式
在日常开发过程当中,能把代码写出来,不一定就意味着能把代码写好,说不准,所写的代码在他人看来,其实就是一坨乱七八糟的翔,因此,代码简化尤其重要,我曾经遇到过这样一个类型的代码,即if-else里都有相同的for循环,这时,我就思考了,如何简化它可以既提高代码性能又减少代码量。
1 public static void main(String[] args) {
2 String status = "is";
3 String[] arrayStr = {"1", "3", "4", "6"};
4 if ("is".equals(status)) {
5 for (int i = 0; i < arrayStr.length; ++i) {
6 System.out.println("执行了正确的方法");
7 }
8 } else {
9 for (int i = 0; i < arrayStr.length; ++i) {
10 System.out.println("执行了错误的方法");
11 }
12
13 }
14 }
研究了一番后,发现jdk1.8有一个Lambda新特性,其实,这玩意很有用,若能熟悉它,可以减少很多的代码量,也能一定提高代码的性能,例如,我通过Lambda表达式将上面的代码简化这了这样,看起来是不是就没那么冗余了:
1 public static void main(String[] args) {
2 String status = "is";
3 String[] arrayStr = {"1", "3", "4", "6"};
4
5 Arrays.asList(arrayStr).stream().forEach(
6 (e) -> {
7 if ("is".equals(status)) {
8 System.out.println("执行了正确的方法");
9 } else {
10 System.out.println("执行了错误的方法");
11 }
12 }
13 );
14 }
JDK1.8新特性Lambda表达式简化if-else里都有for循环的优化方式的更多相关文章
- JDK1.8新特性-Lambda表达式
Lambda 表达式 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性. Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中). 使用 Lambda 表 ...
- jdk1.8新特性-Lambda表达式使用要点
前言 在jdk1.8出来的时候看到过,没怎么了解.但是最近再看kafka和spark框架,框架示例中ava版的很多地方用到Lambda表达式,发现使用Lambda表达式代码确实简单了好多,有些例子大致 ...
- jdk1.8新特性 lambda表达式和Stream
一.Lambda 1.lambda : 匿名函数 2.好处:减少打码的冗余,增强匿名函数的可读性 3.语法格式 语法格式一 : 无参数,无返回值 () -> System.out.println ...
- JDK1.8新特性Lambda表达式
/** * Lambda * @date 2019/8/2 10:03 */ public class Lamda { public static void main(String[] args){ ...
- (转)JDK1.8新特性Lambda表达式
https://www.cnblogs.com/franson-2016/p/5593080.html Predicate predicate接收一个变量,并返回一个boolean值,predicat ...
- Java8新特性-Lambda表达式是什么?
目录 前言 匿名内部类 函数式接口 和 Lambda表达式语法 实现函数式接口并使用Lambda表达式: 所以Lambda表达式是什么? 实战应用 总结 前言 Java8新特性-Lambda表达式,好 ...
- 乐字节-Java8新特性-Lambda表达式
上一篇文章我们了解了Java8新特性-接口默认方法,接下来我们聊一聊Java8新特性之Lambda表达式. Lambda表达式(也称为闭包),它允许我们将函数当成参数传递给某个方法,或者把代码本身当作 ...
- Java 8 新特性 - Lambda表达式
Lambda表达式 vs 匿名类既然lambda表达式即将正式取代Java代码中的匿名内部类,那么有必要对二者做一个比较分析.一个关键的不同点就是关键字 this.匿名类的 this 关键字指向匿名类 ...
- C#10新特性-lambda 表达式和方法组的改进
C# 10 中对Lambda的语法和类型进行了多项改进: 1. Lambda自然类型 Lambda 表达式现在有时具有"自然"类型. 这意味着编译器通常可以推断出 lambda 表 ...
- Java8新特性——Lambda 表达式
Lambda 表达式 Lambda 表达式的实质属于函数式编程. 语法格式为:(parameters) -> expression ...
随机推荐
- OpenAirInterface,开源的 4G EPS 实现
目录 文章目录 目录 前文列表 OSA OpenAirInterface OAI 的仿真 物理信道仿真 系统级仿真 OAI 的 SDR LTE 参考文档 前文列表 <USRP B210 软件定义 ...
- QShop商城--项目介绍
QShop商城-项目介绍 QShop商城,是全新推出的一款轻量级.高性能.前后端分离的电商系统,支持微信小程序,前后端源码100%开源,完美支持二次开发,让您快速搭建个性化独立商城. 技术架构:.Ne ...
- k8s&dapr开发部署实验(1)服务调用
前置条件 安装docker与dapr: 手把手教你学Dapr - 3. 使用Dapr运行第一个.Net程序 安装k8s dapr 自托管模式运行 新建一个webapi无权限项目 launchSetti ...
- Aspire项目发布到远程k8s集群
前提 你必须会创建aspire项目,不会的请先看微服务新体验之Aspire初体验 Aspirate (Aspir8) Aspirate 是将aspire项目发布到k8s集群的工具 安装aspirate ...
- FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流
<FFmpeg开发实战:从零基础到短视频上线>一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流.不过MediaMTX的功能 ...
- Math Record
T1.P3327 知识点:莫比乌斯反演,数论分块 我们知道 \(d(ij) = \sum_{x | i}\sum_{y | j}[\gcd(x,y) == 1]\). 所以我们就要求 \(\sum^n ...
- graylog 大于等于 查询
graylog 大于等于 查询 :>=1000 不要有空格 如下: pay_channel:PSBC AND hs:>=4
- windows 命令行调整分辨率
windows 命令行调整分辨率 下载:qres_v1.1 https://abcker.lanzouq.com/i1uzA1a5uo8j 解压出来,如:D:\Soft\QRes,不要使用中文名目录. ...
- flutter 尝试创建第一个页面(三)
新建目录 assets 存放图片 在pubspec..yaml 中添加 flutter: # The following line ensures that the Material Icons f ...
- 技术解密Java Chassis 3超实用的可观测性
本文分享自华为云社区<Java Chassis 3技术解密:实用的可观测性>,作者:liubao68. 狭义的可观测性,指日志.调用链和指标,广义的可观测性则包含更多的内容,一般的,应用程 ...