Java ArrayIndexOutOfBoundsException은 사전 정의된 길이를 초과하는 배열 요소에 액세스할 때 생성됩니다. 어레이는 확인된 시간에 추정되며 본질적으로 정적입니다. 배열을 정의할 때 요소의 개수는 고정되어 있으며 0부터 시작합니다. 예를 들어 요소가 10개라면 배열은 10번째 요소를 11번째 요소는 첫 번째 요소가 0번째 요소이기 때문입니다. 처음에는 모든 프로그래머가 프로그램이 실행되면 출력이 보장된다고 생각합니다. 그러나 런타임 시 프로그램 실행을 방해하는 시스템 문제가 발생하며 이러한 문제를 예외라고 합니다. 따라서 런타임 중에 이 IndexOutOfBoundsException이 발생하면 이는 Main Exception 클래스의 하위 클래스인 RuntimeException 클래스에서 생성되며 이 모든 것은 java.lang 패키지에서 파생됩니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
건축자
예시 #1
코드:
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] + " "); } } }
출력:
위 프로그램에서 veggies라는 배열이 6개의 요소로 구성되어 있음을 알 수 있습니다. for 루프가 반복되면 I <=veggies.length 조건을 고려합니다. 즉, 배열은 0
번째 위치부터 6번째 위치까지의 요소를 고려하고 마지막으로 , 마지막 반복 중에 i=6 값이 배열 크기를 초과하므로 ArrayoutOfBoundsException이 구현됩니다.
예시 #2
코드 #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]); } }
출력:
여기에서는 먼저 정수 배열을 선언한 다음 배열의 개별 요소에 액세스하는 방법을 살펴봅니다. 완료되면 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); } }
출력:
ArrayIndexOutOfBoundsException을 방지하는 방법은 무엇입니까?
1. 향상된 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 + " "); } } }
출력:
위 프로그램에서 향상된 for 루프를 사용하여 과일 배열을 반복했습니다. 먼저 배열의 5개 요소를 설명한 다음 향상된 for 루프를 구현합니다. 이 루프는 배열 끝에 도달할 때까지 반복되므로 각 배열을 별도로 정의할 필요가 없습니다. 따라서 유효한 인덱스나 요소만 검토하여 최종적으로 우리가 찾고 있는 정확한 결과를 제공합니다. 따라서 이 향상된 for 루프를 활용하면 ArrayIndexOutOfBoundsException을 피할 수 있습니다.
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.
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:
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.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!