我最近被要求在一行代码中检查数组是否为空。
我的想法是使用array.length==0
。但如果数组初始化如此,
int[] array = new int[5];
这将具有大小为5的数组,并且在每个索引中都为“0”。
你能帮我找一个单行代码来检查它是否为空?
答案 0 :(得分:4)
如果您想检查数组是否包含任何非零元素,您可以使用流进行一行决策:
Arrays.stream(array).anyMatch(x -> x != 0);
但它可以产生NullPointerException,如果你想避免它,你可以使用Optional
:
Arrays.stream(Optional.ofNullable(array).orElse(new int[0])).anyMatch(x -> x != 0))
答案 1 :(得分:2)
如果将empty定义为具有 零元素 的数组,则可以使用以下条件检查它是否为空:
if (array.length == 0)
如果您已将数组初始化为int[] array = new int[0];
,则会发现它为空。
如果您想检查数组是否 null ,请使用:
if (arr == null)
如果您将空白定义为 ,其值不等于零 ,则条件为:
Arrays.stream(array).anyMatch(element -> element != 0);
将检查您的任何数组元素是否不等于零。
您还可以使用包ArrayUtils.isNotEmpty(array)
中的org.apache.commons.lang3
方法,以确保您的数组 既不为空也不为空 。