Java如何使用Stream优化if中判断条件过多情况
作者:SunnyJourney
时间:2023-04-24
浏览:3
使用Stream优化if中判断条件过多情况Jdk1.8新特性Stream流有三个这样API,anyMatch,allMatch,noneMatch,各自的作用如下:anyMatch:判断条件里任意一个满足条件,则返回true;allMatch:判断条件里所有都满足条件,则返回true;noneMatch:判断条件里所有都不满足条件,则返回true;它们的使用方式其实很简单:Listlist=Arrays.asList("a","b","c","d","");//任意一个字符串判断不为空则为truebool
本文目录
使用Stream优化if中判断条件过多情况
Jdk1.8新特性Stream流有三个这样API,anyMatch,allMatch,noneMatch,各自的作用如下:
anyMatch:判断条件里任意一个满足条件,则返回true;
allMatch:判断条件里所有都满足条件,则返回true;
noneMatch:判断条件里所有都不满足条件,则返回true;
它们的使用方式其实很简单:
Listlist = Arrays.asList("a", "b", "c","d", ""); //任意一个字符串判断不为空则为true boolean anyMatch = list.stream().anyMatch( s->StringUtils.isEmpty(s)); //所有字符串判断都不为空则为true boolean allMatch = list.stream().allMatch( s->StringUtils.isEmpty(s)); //没有一个字符判断为空则为true boolean noneMatch = list.stream().noneMatch( s->StringUtils.isEmpty(s));
可见,根据以上三种实现方式,可以在某种程度上优化if里判断条件过多的情况,那么,在哪种场景里比较合适利用其优化呢?
在日常实际开发当中,我们可能会看到过这样存在很多判断条件的代码:
if(StringUtils.isEmpty(str1) || StringUtils.isEmpty(str2) ||
StringUtils.isEmpty(str3) || StringUtils.isEmpty(str4) ||
StringUtils.isEmpty(str5) || StringUtils.isEmpty(str6)
){
.....
}这时,就可以考虑到,使用stream流来优化,优化后的代码如下:
if(Stream.of(str1, str2, str3, str4,str5,str6).anyMatch(s->StringUtils.isEmpty(s))){
.....
}这样优化后,是不是就比那堆if里堆积到一块的条件更为优雅了?
当然,这只是针对或条件的,若是遇到与条件时,同样可以用Stream来优化,例如:
if(StringUtils.isEmpty(str1) && StringUtils.isEmpty(str2) &&
StringUtils.isEmpty(str3) && StringUtils.isEmpty(str4) &&
StringUtils.isEmpty(str5) && StringUtils.isEmpty(str6)
){
.....
}使用Stream优化后:
if(Stream.of(str1, str2, str3, str4,str5,str6).allMatch(s->StringUtils.isEmpty(s))){
.....
}
作者最新文章
漫蛙下载最新版本
2026-10-13 13:42
漫蛙app下载安装最新版
2026-10-13 13:42
漫蛙2漫画APP免费下载安装最新版本
2026-10-13 13:20
漫蛙漫画网页下载安装最新版本
2026-10-13 13:17
keyshot快捷键命令大全表格整理与使用教程
2026-10-12 14:13
上一篇:
Java如何实现文件断点续传功能?
下一篇:
Python模块:定义、使用和管理
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































