Java 数组:识别重复项
在数组中搜索重复项时,必须避免可能导致错误结果的陷阱。在提供的代码片段中,问题出在嵌套循环结构中:
for(j = 0; j < zipcodeList.length; j++){ for(k = 0; k < zipcodeList.length; k++){ if (zipcodeList[k] == zipcodeList[j]){ duplicates = true; } } }
即使没有重复项,这种方法也会错误地将重复项设置为 true。当 j 等于 k 时,就会出现问题,即使对于唯一元素,也会触发条件 zipcodeList[k] == zipcodeList[j]`。
鼻子上的答案...
为了纠正这个错误,我们可以通过在 k = j 1 处开始内循环来改进循环结构,如图所示如下:
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; } } }
此修改确保我们只将每个元素与其他唯一元素进行比较,有效防止误报。
以上是如何有效检测 Java 数组中的重复项并避免误报?的详细内容。更多信息请关注PHP中文网其他相关文章!