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 중국어 웹사이트의 기타 관련 기사를 참조하세요!