如何检查空二维数组?Java中如何修改条件使返回值为false而非true?
问题2:修改条件让char table[][] = {{}};返回false
原来的条件return (table != null && table.length > 0);之所以返回true,是因为{{}}这个数组本身不是null,而且它的长度是1(存在一行)。但这一行是空数组,没有实际元素,所以我们需要给条件补充检查:是否存在至少一行非空且包含元素。
修改后的条件可以这样写:
return (table != null && table.length > 0 && Arrays.stream(table).anyMatch(row -> row != null && row.length > 0));
对于{{}}来说,Arrays.stream(table).anyMatch(...)会遍历唯一的一行,发现这行是空数组,所以anyMatch返回false,整个表达式的结果就是false,这样return的结果就变成你想要的false了。
如果你不想用Stream,也可以把检查逻辑封装成一个小方法,核心思路都是一样的——不仅要检查二维数组本身非空,还要确保里面有实际的元素存在。
内容的提问来源于stack exchange,提问作者tukevaseppo
相关产品推荐
相关产品推荐

