java - 需要数组,但 [ClassName] 找到了 java

标签 java arrays equality

我正在尝试编写一个函数来检查两个数组是否相等。

public class DynamicArray {
    private int size; // stores the number of “occupied” elements in the array
    private int[] array; 

    ...

    boolean equals(DynamicArray obj) {
        boolean keepChecking = true;
        int objSize = 1;
        for (int i = 0; i < obj.length; i++) {
            if (obj[i] == 0 && keepChecking) {
                keepChecking = false;
                objSize = obj[i];
            }
        }

        if (size != objSize) 
            return false;

        for (int i = 0; i < size; i++) {
            if (array [i] != obj [i]) {
               return false;
            }
        }
        return true;
    }
}

问题是数组可能是部分填充的数组,未填充的元素将只是零。因此,为了检查两个数组是否相等,我首先找到占用数组的大小,然后进行所有检查。

因此,每次我尝试获取 obj[i] 或 obj.length 的值时,它都会显示错误“需要数组,但找到了 DynamicArray”。对于 obj[i] 和“找不到符号\n 符号:可变长度\n 位置:DynamicArray 类型的变量 obj”,我不明白,因为另一个数组也是 DynamicArray 类型

public class ArrayDemo {

    public static void main(String[] args) {
        DynamicArray ar1 = new DynamicArray(1);
        DynamicArray ar2 = new DynamicArray(1);

        System.out.println("equals() is " + ar1.equals(ar2));
    }

}

最佳答案

equals 方法中的参数 obj 不是数组,而是 DynamicArray 的实例。因此,您无法使用标识符 obj 上的 [] 访问值。您需要重写该方法。您还需要在 DynamicArray 对象中包含用于设置和获取数组元素的方法。例如:

val = ar1.get(0);

ar1.set(0, 值);

所以这意味着您的动态数组需要以下两种方法(我假设您的数组的值是整数,但这可以是任何值)。我会让你弄清楚其中的内容,因为我认为你一定正在学习这门语言。

public void set(int index, int value){
}

public int get(int index){
}

这样您就可以在重写的 equals 函数中使用您的方法来访问数组的元素。

另一个提示。你最好对两个数组进行排序。比较第一个元素或每个元素,然后比较下一个元素,然后再比较下一个元素,直到发现不匹配。那时你可以返回 false。如果没有发现不匹配,则返回 true。

关于java - 需要数组,但 [ClassName] 找到了 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268924/

相关文章:

java - Spring JPA 选择特定列

java - textPersonName 和 textPassword 之间的比较

c 编程输入最后一个元素是@

python - "=="和 "is"之间有区别吗?

python - 为什么 'is' 运算符在算术相等表达式中表现异常

java - 读取不带标题的 POI Excel 文件

java - 与应用程序大小相比巨大的 Perm Gen,这正常吗?

c - 设置在结构数组中定义的 "string"数组等于某物

javascript - 在 JavaScript 中使用排序方法时是否应该检查数组长度?

python - pythons关键字 "in"检查 "is"还是 "=="