如何高效判断Java中多个值是否都为空或都不为空?

如何高效判断java中多个值是否都为空或都不为空?

Java高效判断多个值是否都为空或都不为空

在日常Java开发中,经常需要判断多个变量是否都为空或都不为空。例如,表单验证需要确认所有必填字段是否已填写;数据处理需要检查多个关联数据是否都存在。本文提供两种高效的Java代码方案来解决这个问题,避免冗长的if-else语句。

问题核心: 优雅地判断多个值的状态是否一致(都为空或都不为空)。

方案一:使用Java Stream API

立即学习“Java免费学习笔记(深入)”;

此方案利用mapToInt和sum方法。将输入对象数组转换为整数流,其中null值映射为0,非null值映射为1。然后,计算所有值的和。如果和为0(全部为空)或等于数组长度(全部不为空),则返回true,否则返回false。

import java.util.Arrays;public class AllNullOrNotNull {    public static void main(String[] args) {        System.out.println(allSameNullState("", "", "")); // true        System.out.println(allSameNullState(null, null)); // true        System.out.println(allSameNullState("", "", null)); // false    }    static boolean allSameNullState(Object... objs) {        int count = Arrays.stream(objs).mapToInt(it -> (it == null ? 0 : 1)).sum();        return count == 0 || count == objs.length;    }}

登录后复制

方案二:更注重效率的方案

此方案先判断数组长度是否小于等于1,如果是,则直接返回true。否则,获取第一个元素的空状态,然后使用allMatch方法检查所有元素的空状态是否与第一个元素一致。此方法避免了对整个数组的遍历求和,在数据量较大时可能性能更好。

static boolean allSameNullStateEfficient(Object... objs) {    if (objs.length  (it == null) == firstState);}

登录后复制

总结:

两种方法各有优劣,选择取决于具体场景和性能要求。方案一代码简洁,方案二在数据量大时可能效率更高。 选择适合您项目需求的方案即可。

以上就是如何高效判断Java中多个值是否都为空或都不为空?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2495837.html

(0)
上一篇 2025年3月5日 02:40:47
下一篇 2025年2月24日 06:29:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论