温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java怎么使用Stream优化if中判断条件过多情况

发布时间:2023-05-06 09:18:47 来源:亿速云 阅读:129 作者:zzz 栏目:编程语言

这篇文章主要介绍了Java怎么使用Stream优化if中判断条件过多情况的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么使用Stream优化if中判断条件过多情况文章都会有所收获,下面我们一起来看看吧。

使用Stream优化if中判断条件过多情况

Jdk1.8新特性Stream流有三个这样API,anyMatch,allMatch,noneMatch,各自的作用如下:

  • anyMatch:判断条件里任意一个满足条件,则返回true;

  • allMatch:判断条件里所有都满足条件,则返回true;

  • noneMatch:判断条件里所有都不满足条件,则返回true;

它们的使用方式其实很简单:

List<String> list = 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))){
  .....
}

关于“Java怎么使用Stream优化if中判断条件过多情况”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java怎么使用Stream优化if中判断条件过多情况”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI