>  기사  >  Java  >  Java 데이터 인덱스 예외(IndexOutOfBoundsException)에 대한 솔루션

Java 데이터 인덱스 예외(IndexOutOfBoundsException)에 대한 솔루션

王林
王林원래의
2023-08-18 22:48:336701검색

Java 데이터 인덱스 예외(IndexOutOfBoundsException)에 대한 솔루션

Java 데이터 인덱스 예외(IndexOutOfBoundsException)에 대한 솔루션

소개:
Java 프로그래밍에서 존재하지 않는 배열 요소에 액세스하거나 컬렉션의 인덱스가 범위를 벗어나면 IndexOutOfBoundsException 예외가 발생합니다. 이는 많은 초보자들이 흔히 겪는 흔한 실수입니다. 이 기사에서는 몇 가지 간단한 솔루션으로 IndexOutOfBoundsException 예외를 방지하고 해결하는 방법을 소개합니다.

  1. 잘못된 지수 계산
    먼저 지수 계산의 정확성을 확인하고 싶습니다. 대부분의 경우 IndexOutOfBoundsException 예외는 인덱스 계산 오류로 인해 발생합니다.

샘플 코드 1:

int[] array = new int[5];
int index = 5;
array[index] = 10;  // 此处抛出IndexOutOfBoundsException异常

위 코드에서는 길이가 5인 정수 배열을 생성했지만 인덱스가 5인 요소에 값을 할당하려고 하면 IndexOutOfBoundsException 예외가 발생합니다. 이는 배열의 인덱스가 0부터 계산되기 때문에 배열의 유효한 인덱스 범위는 0~4여야 합니다. 이 문제를 해결하려면 단순히 인덱스를 올바르게 계산해야 합니다.

샘플 코드 2:

int[] array = new int[5];
int index = 4;
array[index] = 10;  // 正确的索引赋值
  1. 비어 있지 않은 판단
    컬렉션이나 동적으로 성장하는 데이터 구조를 사용할 때 먼저 null인지 또는 충분한 요소가 추가되었는지 판단해야 합니다. 그렇지 않으면 범위를 벗어난 액세스로 인해 IndexOutOfBoundsException이 발생할 수 있습니다.

예제 코드 3:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
int index = 2;
int value = list.get(index);  // 此处抛出IndexOutOfBoundsException异常

위 코드에서는 빈 ArrayList를 생성하고 인덱스 2를 가진 요소의 값을 가져오려고 시도했지만 요소가 두 개뿐이므로 인덱스 2를 가진 요소에 액세스하면 An이 발생합니다. IndexOutOfBoundsException 예외가 발생합니다. 이 문제를 해결하려면 컬렉션에 액세스하기 전에 컬렉션의 크기나 길이를 확인할 수 있습니다.

샘플 코드 4:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
int index = 1;
if (index < list.size()) {
    int value = list.get(index);  // 正确的访问
}
  1. 루프 제어
    루프를 사용할 때 인덱스가 배열 또는 컬렉션의 유효한 범위를 초과하지 않는지 확인해야 합니다. IndexOutOfBoundsException을 방지하는 방법은 일반적으로 두 가지가 있습니다.

방법 1: for 루프 제어:

for (int i = 0; i < array.length; i++) {
    // 访问数组元素
}

for 루프를 사용할 때 배열 또는 컬렉션의 길이를 사용하여 루프 수를 제어하여 루프 수를 초과하지 않도록 합니다. 인덱스의 범위.

방법 2: foreach 루프 제어:

for (int value : array) {
    // 访问数组元素
}

foreach 루프를 사용할 때 기본 레이어가 이미 관련 판단을 내렸으므로 IndexOutOfBoundsException 예외가 발생하지 않으므로 인덱스 범위에 신경 쓸 필요가 없습니다.

요약하자면, 올바른 인덱스 계산, Null이 아닌 판단 및 루프 제어를 통해 Java에서 IndexOutOfBoundsException 예외를 방지하고 해결할 수 있습니다. 이러한 간단한 솔루션은 코드의 견고성과 가독성을 향상할 수 있으며 오류를 찾아 수정하는 데 더 도움이 될 수 있습니다. Java 프로그램 개발자에게 이러한 기술을 익히는 것은 코드의 품질과 효율성을 향상시키는 데 매우 중요합니다.

참조:

  • https://docs.oracle.com/en/java/javase/14/names-indexes-for-td-tables.html
  • https://www.geeksforgeeks.org/indexoutofboundsException - in-java-with-examples/

위 내용은 Java 데이터 인덱스 예외(IndexOutOfBoundsException)에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.