Java如何使用Stream优化if中判断条件过多情况
作者:SunnyJourney
时间:2023-04-24
浏览:4
使用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))){
.....
}
作者最新文章
xshell端口ssh SSH隧道建立方法
2026-11-03 10:11
CorelDRAW是免费软件吗?详解试用、订阅与一次性购买收费模式
2026-10-30 19:32
PDF怎么免费转成Word并保留内容?转换前后检查要点
2026-10-30 17:50
ArchiveofOurOwn小说快速入口链接
2026-10-30 10:30
冰点还原怎么安装 初始配置步骤
2026-10-28 13:38
上一篇:
Java如何实现文件断点续传功能?
下一篇:
Python模块:定义、使用和管理
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































