我正在尝试测试多维数组以查看是否包含任何重复值。如果是这样,我希望该方法返回 false。否则我希望它返回 true。
这是我当前的代码。我的逻辑哪里错了?
public static boolean isUnique(int[][] array2, int num) {
for (int i = 0; i < array2.length - 1; i++) {
for (int j = i + 1; j < array2.length; j++) {
if (array2[i] == array2[j]) {
return false;
}
}
}
return true;
}
最佳答案
您当前的实现正在检查两行是否相同(这是基于引用的检查,而不是值。)这意味着它会询问“Are array2[i]
and ” array2[j]
内存中的相同地址,而不是它们包含相同的东西。
如果您想查看行是否唯一,您可以使用array2[i].equals(array2[j])
而不是array2[ i] == array2[j]
.
如果您想检查唯一元素(array[i][j] != array2[i+m][j+n]
where !(m == n == 0) )您需要遍历 a 中的两个级别
for (int i = 0; i < array2.length; i++) {
for (int j = 0; j < array2[i].length; j++) {
// compare array2[i][j] to all other array2[m][n] here.
}
}
关于Java - 多维数组如何测试数组的所有唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40643612/