【发布时间】:2015-01-28 02:36:20
【问题描述】:
试图比较数组的元素。例如,如果 array[0][0] 等于 array[0][1],想要返回一个布尔值。我想看看两个元素是否不相等会更容易。所以
boolean rowAlike = true;
for(int row = 0; row<size; row++)
{
for(int col = 0;col<size;col++)
{
nextNum = col + 1;
if(!square[row][col].equals(square[row][nextNum]))
rowAlike=false;
}
if(rowAlike)
System.out.println("All digits are the same in row " +row++);
由于数组是引用变量,我知道 == 将比较内存位置而不是这些元素的值。我在上面尝试过,也尝试过
Arrays.equals(square[row][col],(square[row][nextNum])
我得到一个错误的错误或编译器错误。
编辑:我收到的错误错误是在使用== 时我使用.equals 得到一个编译器错误
ExploreMatrix.java:89: 错误:int 不能被取消引用
当使用 Arrays.equals 时
ExploreMatrix.java:89: 错误:没有找到适合 equals(int,int) 的方法
【问题讨论】:
-
I either get a false false or a compiler error.嗯,是哪个?如果这是编译器错误,为什么不在您的问题中分享它? -
抱歉,不小心遗漏了那部分代码。 square 是二维数组。尺寸由用户设置。两个维度始终相同。
-
您可以编辑您的问题。并格式化。
-
所以数组是引用类型。但是
int是原始类型。您对这些错误有什么不了解的地方? -
我理解这些错误。我想知道,如果有办法,我可以比较这两个元素。