Computer >> Máy Tính >  >> Lập trình >> Java

ArrayIndexOutOfBoundsException trong Java là gì?

Mảng là một cấu trúc / vùng chứa / đối tượng dữ liệu lưu trữ một tập hợp tuần tự có kích thước cố định của các phần tử cùng loại. Kích thước / chiều dài của mảng được xác định tại thời điểm tạo.

Vị trí của các phần tử trong mảng được gọi là chỉ số hoặc chỉ số con. Phần tử đầu tiên của mảng được lưu trữ ở chỉ mục 0 và phần tử thứ hai ở chỉ mục 1, v.v.

ArrayIndexOutOfBoundsException trong Java là gì?

Mỗi phần tử trong một mảng được truy cập bằng cách sử dụng một biểu thức có chứa tên của mảng theo sau là chỉ số của phần tử bắt buộc trong dấu ngoặc vuông.

System.out.println(myArray[3]);
//prints 1457

Nói chung, một mảng có kích thước cố định và mỗi phần tử được truy cập bằng cách sử dụng các chỉ số. Ví dụ, chúng ta đã tạo một mảng có kích thước 7. Khi đó, các biểu thức hợp lệ để truy cập các phần tử của mảng này sẽ là a [0] đến a [6] (length-1).

Bất cứ khi nào bạn sử dụng giá trị –ve hoặc, giá trị lớn hơn hoặc bằng kích thước của mảng, thì ArrayIndexOutOfBoundsException được ném.

Ví dụ:nếu bạn thực thi đoạn mã sau, nó sẽ hiển thị các phần tử trong mảng yêu cầu bạn cung cấp chỉ số để chọn một phần tử. Vì kích thước của mảng là 7, chỉ mục hợp lệ sẽ là 0 đến 6.

Ví dụ

import java.util.Arrays;
import java.util.Scanner;
public class AIOBSample {
   public static void main(String args[]){
      int[] myArray = {1254, 1458, 5687,1457, 4554, 5445, 7524};
      System.out.println("Elements in the array are: ");
      System.out.println(Arrays.toString(myArray));
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter the index of the required element: ");
      int element = sc.nextInt();
      System.out.println("Element in the given index is :: "+myArray[element]);
   }
}

Nhưng nếu bạn quan sát đầu ra bên dưới, chúng tôi đã yêu cầu phần tử có chỉ mục 9 vì nó là chỉ mục không hợp lệ, ArrayIndexOutOfBoundsException được nâng lên và quá trình thực thi đã kết thúc.

Đầu ra

Ngoại lệ thời gian chạy -

Elements in the array are:
[1254, 1458, 5687, 1457, 4554, 5445, 7524]
Enter the index of the required element:
7
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
   at AIOBSample.main(AIOBSample.java:12)