【发布时间】:2021-04-20 23:14:15
【问题描述】:
我已经编写了一个方法来比较不同的二维数组并使用 .equals 输出它们是否相同。在我的主要测试器类中,我将两个相同的 2D 整数数组相互比较,所以输出应该是“真”,然后是两个不同的 2D 字符串数组,所以输出应该是假的。在测试不同的组合时,当我测试相等和不相等的整数数组时,我得到正确的输出。测试不同大小的数组,正确的输出和测试相等的字符串数组我得到正确的输出。
我遇到的问题是,当我测试两个不相等的字符串数组时,程序在它们不相等时返回 true,因此输出应该为 false。提前感谢您提供任何帮助或提示。
public boolean equals(Object[][] other) {
boolean isEqual = false;
if (myArray.length != other.length) {
return isEqual;
}
for (int i = 0; i < myArray.length; i++) {
for (int j = 0; j < myArray[i].length; j++) {
if (myArray[i][j].equals(other[i][j])) {
isEqual = true;
} else {
isEqual = false;
}
}
}
return isEqual;
}
测试:
public class TwoDTester {
public static void main(String[] args) {
//Initializing arrays
Integer[][] firstArray = {{2, 3}, {3, 4}, {4, 5}};
Integer[][] secondArray = {{2, 3}, {3, 4}, {4, 5}};
//Creating TwoDArray object for comparisons
TwoDArray first = new TwoDArray(firstArray);
//Testing true or false
System.out.println(first.equals(secondArray));
//Initializing more arrays
String[][] thirdArray = {
{"Hello", "Goodbye"},
{"Hola", "Adios"},
{"Bonjour", "Au revoir"}};
String[][] fourthArray = {
{"Hello", "Goodbye"},
{"Ciao", "Addio"},
{"Bonjour", "Au revoir"}};
//Creating TwoDArray object for comparisons
TwoDArray third = new TwoDArray(thirdArray);
//Testing true or false
System.out.println(third.equals(fourthArray));
}
}
【问题讨论】:
标签: java arrays for-loop multidimensional-array comparison