我在检查两个锯齿状Java数组的大小是否相同时遇到麻烦。 我的函数没有返回正确的结果。 我正在处理的硬件问题指出,如果两个数组均为null或大小相同,则函数应返回true;如果数组中仅有一个为null或数组大小不同,则函数应返回false。

我尝试执行代码以查看返回的布尔值,但是控制台什么也不输出。

static boolean arraySameSize(int[][] one, int[][] two) {    
    boolean value = false;
    if (one == null && two == null) {
        value = true;
    } else if ((one == null && two != null) || (two == null && one != null)) {
        value =  false;
    } else {
        int count = 0;
        int count2 = 0;
        for (int i = 0; i < one.length; i++) {
            for (int j = 0; j < one[i].length; j++) {
                count++;
            }
        }
        for (int i = 0; i < two.length; i++) {
            for (int j = 0; j < two[i].length; j++) {
                count2++;
            }
        }
        if (count == count2) {
            value = true;
        } else {
            value = false;
        }
    } 
    return value;
}

如果两个数组都为null或大小相同,我期望输出为true,否则为false。 我从自动分级机收到以下错误消息:

java.lang.AssertionError:错误的结果:预期为[false]但找到为[true]

返回值时,我应该如何调整以确保值具有正确的值?

#1楼 票数:1

尝试这个。

static boolean arraySameSize(int[][] one, int[][] two) {
    if (one == null && two == null) return true;
    if (one == null || two == null) return false;
    if (one.length != two.length) return false;
    for (int i = 0, size = one.length; i < size; ++i) {
        int[] oneRow = one[i];
        int[] twoRow = two[i];
        if (oneRow == null && twoRow == null) continue;
        if (oneRow == null || twoRow == null) return false;
        if (oneRow.length != twoRow.length) return false;
    }
    return true;
}

  ask by Connor Rhodes translate from so

未解决问题?本站智能推荐:

1回复

在Java中构造锯齿状数组并遇到两个矛盾的错误[关闭]

您好,我是菜鸟程序员,并且正在使用BlueJ作为我的IDE。 这是我的代码来构造数组 } 该数组是在类中的任何方法之外构造的。 但是,我不断收到错误消息,指出编译器期望0出现在']'处,但是当我擦除0时,它抱怨说存在“缺少标识符”。 所以我想知道,编译器“缺少标识符”是什
2回复

创建大小不确定的二维锯齿状数组

对于我的程序,我正在制作一个二维锯齿状整数数组,每个数组的长度取决于用户的输入。 可以这样说: 阵列的总数(M)和每个阵列的N个阵列的长度取决于用户的输入。 有没有一种方法可以使该2D数组可以被该类内的任何方法使用? 谢谢。
1回复

锯齿状阵列; 检查列值增加

这个方法很简单,有2D数组,不是矩形,目的是检查每列中的值是否增加,如果它们是递增的顺序,则返回true,否则返回false。 阵列的形状如下,它是Young Tableaux { [1,4,5,10,11] [2,6,8-] [3,9,12] [7] } 年
2回复

为什么此锯齿状数组无法正确存储?

为什么将数组的其他元素存储到数组中的此调用无法正常工作? 可以看到,只要存储完第一个元素后我尝试单击SHow Array,它似乎就会继续执行并覆盖arrMenu的所有早期元素。 http://jsfiddle.net/MasterOfKitties/jW5Bv/96/ 操作代码如下
3回复

添加锯齿状二维数组的列

我四处寻找一个好的答案,但我很惊讶我找不到一个能完成我想要做的事情的答案。 我想创建一个在锯齿状二维数组中查找列总和的方法,无论大小,是否锯齿状等。这是我的代码: public static int addColumn(int[][] arr, int x) { int columnSum
1回复

在锯齿状数组中添加各列不起作用

我最近一直在使用2D和锯齿状数组,正在尝试添加行中的每个元素和列中的每个元素。 我得到了打印出每一行总和的代码,但是在添加数组中的每一列时遇到了困难。 注意:我尝试做sum += numbers[c][r]; 但它不起作用
3回复

打印锯齿状数组中的字符串组合

假设我有一个字符串数组,如下所示: 我想打印数组的组合: 蓝色1狗 蓝色1只猫 ... ... 红3鸟 但是我希望锯齿状数组具有用户指定的行和列。 如何以动态和迭代的方式创建类似的方法 ? 我也在使用数组而不是ArrayList,因为作为初学者,我想在学习
2回复

如何在Java中将锯齿状数组解析为单个变量?

我有一个至少包含三个元素的锯齿状数组,我需要解析出前五个元素,用空格填充所有null。 尽管上面的代码在编译期间不会产生错误,但是引用whiconcatF或whiconcatG后续whiconcatF在编译期间出错,且cannot find symbol 。 我已经尝试过使用for