java - 比较java中同一个数组的元素

标签 java arrays compare elements between

我正在尝试比较同一数组的元素。这意味着我想将 0 元素与所有其他元素进行比较,将 1 元素与其他所有元素进行比较,依此类推。问题是它没有按预期工作。 .我所做的是我有两个从 0 到 array.length-1 的 for 循环。然后我有一个 if 语句如下:if(a[i]!=a[j+1])

for (int i = 0; i < a.length - 1; i++) {
    for (int k = 0; k < a.length - 1; k++) {
        if (a[i] != a[k + 1]) {
            System.out.println(a[i] + " not the same with  " + a[k + 1] + "\n");
        }
    }
}

最佳答案

首先,您需要循环到 < a.length而不是 a.length - 1 .因为这严格小于您需要包括上限。

因此,要检查您可以执行的所有元素对:

for (int i = 0; i < a.length; i++) {
    for (int k = 0; k < a.length; k++) {
        if (a[i] != a[k]) {
            //do stuff
        }
    }
}

但这会比较,例如a[2]a[3]然后 a[3]a[2] .鉴于您正在检查 !=这看起来很浪费。

更好的方法是比较每个元素 i数组的其余部分:

for (int i = 0; i < a.length; i++) {
    for (int k = i + 1; k < a.length; k++) {
        if (a[i] != a[k]) {
            //do stuff
        }
    }
}

因此,如果您有索引 [1...5],就会进行比较

  1. 1 -> 2
  2. 1 -> 3
  3. 1 -> 4
  4. 1 -> 5
  5. 2 -> 3
  6. 2 -> 4
  7. 2 -> 5
  8. 3 -> 4
  9. 3 -> 5
  10. 4 -> 5

所以你看到对没有重复。想一想一群人都需要彼此握手。

关于java - 比较java中同一个数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23460367/

相关文章:

java - 需要帮助获取安装在 Android 手机上的所有应用程序的列表

C++ 类模板构造函数——用数组 (U*) 重载引用 (U&) 失败

javascript - 数组的数组到对象

python - 如何使用 python 比较两个不同的 csv 文件?

java - 引用具有数组内容的图像

java - JDatePicker 和属性不起作用

mysql 字段间比较

regex - awk 从一个文件中搜索列,如果匹配从两个文件中打印列

java - 基于 SWT 的 GUI 在从全尺寸最小化状态最大化时变黑

javascript - 计算动态添加的输入中的值