Java 数组,查找重复项
问题:
在 Java 中,给出一个整数数组,目标是识别并报告数组中的任何重复元素。然而,当不存在重复项时,当前检测重复项的方法会产生错误的结果。
原始代码:
int[] zipcodelist = // ... boolean duplicates = false; for(j = 0; j < zipcodeList.length; j++){ for(k = 0; k < zipcodeList.length; k++){ if (zipcodeList[k] == zipcodeList[j]){ duplicates = true; } } }
原始代码中的问题:
当数组中没有重复项时就会出现问题。即使在这种情况下,循环结构也会将重复项指定为 true,因为内部循环会检查每个元素与其自身之间的相等性。因此,当没有重复项时,重复项最终为 true。
改进的检测重复项的代码:
要解决此问题,可以将代码修改如下:
duplicates = false; for (j = 0; j < zipcodeList.length; j++){ for (k = j + 1; k < zipcodeList.length; k++){ if (k != j && zipcodeList[k] == zipcodeList[j]){ duplicates = true; } } }
说明:
此修改后的代码包括一个附加的内循环内的条件 (k != j)。此步骤确保仅在唯一元素之间进行比较,避免每个元素与其自身的重复检查。因此,只有在遇到真正的重复项时,重复项才会被设置为 true,从而产生准确的结果。
以上是如何正确识别Java数组中的重复整数?的详细内容。更多信息请关注PHP中文网其他相关文章!