>Java >java지도 시간 >Java ArrayIndexOutOfBoundsException

Java ArrayIndexOutOfBoundsException

王林
王林원래의
2024-08-30 16:14:33885검색

Java ArrayIndexOutOfBoundsException은 사전 정의된 길이를 초과하는 배열 요소에 액세스할 때 생성됩니다. 어레이는 확인된 시간에 추정되며 본질적으로 정적입니다. 배열을 정의할 때 요소의 개수는 고정되어 있으며 0부터 시작합니다. 예를 들어 요소가 10개라면 배열은 10번째 요소를 11번째 요소는 첫 번째 요소가 0번째 요소이기 때문입니다. 처음에는 모든 프로그래머가 프로그램이 실행되면 출력이 보장된다고 생각합니다. 그러나 런타임 시 프로그램 실행을 방해하는 시스템 문제가 발생하며 이러한 문제를 예외라고 합니다. 따라서 런타임 중에 이 IndexOutOfBoundsException이 발생하면 이는 Main Exception 클래스의 하위 클래스인 RuntimeException 클래스에서 생성되며 이 모든 것은 java.lang 패키지에서 파생됩니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

건축자

생성자는 인터페이스가 ArrayOutOfBoundsException에서 구현될 때 형성됩니다. ArrayIndexOutOfBoundsException 생성자에는 3가지 유형이 있습니다.

  • ArrayIndexOutOfBoundsException(): 콘솔의 세부정보 없이 ArrayIndexOutOfBoundsException을 생성합니다.
  • ArrayIndexOutOfBoundsException(int index): index 변수는 합법적이지 않은 다른 인덱스를 나타내므로 ArrayIndexOutOfBoundsException을 생성합니다.
  • ArrayIndexOutOfBoundsException(Strings): ArrayIndexOutOfBoundsException은 적절한 메시지로 구성됩니다.
Java ArrayIndexOutOfBoundsException 구현 예

다음은 언급된 예입니다.

예시 #1

ArrayOutOfBoundsException 생성

코드:

public class Main
{
public static void main (String[] args)
{
String[] veggies = {"Onion", "Carrot", "Potato", "Tomato", "Cucumber", "Radish"};
for (int i=0; i<=veggies.length; i++)
{
System.out.print (veggies[i] + " ");
}
}
}

출력:

Java ArrayIndexOutOfBoundsException

위 프로그램에서 veggies라는 배열이 6개의 요소로 구성되어 있음을 알 수 있습니다. for 루프가 반복되면 I <=veggies.length 조건을 고려합니다. 즉, 배열은 0

번째 위치부터 6번째 위치까지의 요소를 고려하고 마지막으로 , 마지막 반복 중에 i=6 값이 배열 크기를 초과하므로 ArrayoutOfBoundsException이 구현됩니다.

예시 #2

음수 인덱스에 대한 ArrayOutOfBoundsException 액세스

코드 #1

public class Main {
public static void main (String[] args)
{
Integer[] intArray = {5, 7, 9, 11, 13, 15};
System.out.println ( "First element: " + intArray[0]);
System.out.println ( "Last element: " + intArray[-8]);
}
}

출력:

Java ArrayIndexOutOfBoundsException

여기에서는 먼저 정수 배열을 선언한 다음 배열의 개별 요소에 액세스하는 방법을 살펴봅니다. 완료되면 intArray[0] 명령을 사용하여 첫 번째 요소를 인쇄하려고 합니다. 이는 0

번째 요소인 5를 인식하여 인쇄합니다. 반면에 음수 인덱스를 -8로 인쇄하는 명령도 제공합니다. 따라서 시스템은 이 인덱스를 인식하지 못하므로 ArrayOutOfBoundsException이 출력에 인쇄됩니다.

코드 #2

public class MyClass {
int x;
public MyClass () {
x = 5;
}
public static void main (String[] args) {
MyClass myObj = new MyClass ();
System.out.println (myObj.x);
}
}

출력:

Java ArrayIndexOutOfBoundsException

ArrayIndexOutOfBoundsException을 방지하는 방법은 무엇입니까?

모든 프로그래머는 배열 인덱스와 요소를 구현할 때 실수를 범합니다. 이러한 이유로 ArrayIndexOutOfBoundsException이 발생했습니다. 아래 단계를 따르면 이러한 실수를 피할 수 있습니다.

1. 향상된 for 루프

향상된 루프는 배열과 같은 인접한 메모리 영역을 반복하고 합법적인 인덱스에 도달합니다. 이제부터 향상된 for 루프가 구현되면 잘못 안내되거나 불법적인 인덱스를 가져오는 것에 대해 걱정할 필요가 없습니다.

코드:

class Main {
public static void main (String[] args)
{
String[] fruits = {"Apple", "Mango", "Banana", "Watermelon", "Papaya"};
System.out.println ( "");
for (String strval:fruits)
{
System.out.print (strval + " ");
}
}
}

출력:

Java ArrayIndexOutOfBoundsException

위 프로그램에서 향상된 for 루프를 사용하여 과일 배열을 반복했습니다. 먼저 배열의 5개 요소를 설명한 다음 향상된 for 루프를 구현합니다. 이 루프는 배열 끝에 도달할 때까지 반복되므로 각 배열을 별도로 정의할 필요가 없습니다. 따라서 유효한 인덱스나 요소만 검토하여 최종적으로 우리가 찾고 있는 정확한 결과를 제공합니다. 따라서 이 향상된 for 루프를 활용하면 ArrayIndexOutOfBoundsException을 피할 수 있습니다.

2. Proper Start and End Indices

Arrays reliably start with list 0 and not 1. Moreover, the last part in the array can be gotten to using the record ‘arraylength-1’ and not ‘arraylength’. Programming engineers should be mindful while using beyond what many would consider possible and, as such, keep up a key good way from ArrayIndexOutOfBoundsException.

3. Type-Safe Iterator

Type-safe iterators do not toss an exception when they emphasise an assortment and make changes to it as they depict the assortment and roll out the improvements to it.

Code:

import java.util.HashMap;
public class MyClass {
public static void main (String[] args) {
HashMap<String, String> countries = new HashMap<String, String> ();
countries.put ( "India", "Delhi");
countries.put ( "Switzerland", "Bern");
countries.put ( "France", "Paris");
countries.put ( "Belgium", "Brussels");
System.out.println (countries);
}
}

Output:

Java ArrayIndexOutOfBoundsException

Explanation: In the above program, we declare the string of cities and countries and declare that to the HashMap. The system then recognizes this assortment, iterates the code, and finally produces the output without throwing an ArrayIndexOutOfBoundsException.

Conclusion

The ArrayIndexOutOfBoundsException in Java usually occurs when we try to access the elements which are greater than the array length. These exceptions can be avoided by using enhanced for loops or proper indices. There are also exceptions called NullPointerExceptions that are not checked and go beyond RuntimeException; it does not urge the software engineer to utilize the catch square to deal with it. Therefore, we should keep in mind that we should not go beyond array limits and also avoid NegativeArraySizeException.

위 내용은 Java ArrayIndexOutOfBoundsException의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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