อาร์เรย์เป็นข้อมูล โครงสร้าง/คอนเทนเนอร์/วัตถุ ที่เก็บคอลเล็กชันแบบต่อเนื่องขนาดคงที่ขององค์ประกอบประเภทเดียวกัน ขนาด/ความยาวของอาร์เรย์จะถูกกำหนดในขณะที่สร้าง
ตำแหน่งขององค์ประกอบในอาร์เรย์เรียกว่าดัชนีหรือตัวห้อย องค์ประกอบแรกของอาร์เรย์จะถูกเก็บไว้ที่ดัชนี 0 และองค์ประกอบที่สองอยู่ที่ดัชนี 1 เป็นต้น
แต่ละองค์ประกอบในอาร์เรย์สามารถเข้าถึงได้โดยใช้นิพจน์ที่มีชื่อของอาร์เรย์ตามด้วยดัชนีขององค์ประกอบที่จำเป็นในวงเล็บเหลี่ยม
System.out.println(myArray[3]); //prints 1457
โดยทั่วไป อาร์เรย์จะมีขนาดคงที่และแต่ละองค์ประกอบสามารถเข้าถึงได้โดยใช้ดัชนี ตัวอย่างเช่น เราได้สร้างอาร์เรย์ที่มีขนาด 7 แล้ว นิพจน์ที่ถูกต้องเพื่อเข้าถึงองค์ประกอบของอาร์เรย์นี้จะเป็น a[0] ถึง a[6] (length-1)
เมื่อใดก็ตามที่คุณใช้ค่า –ve หรือค่าที่มากกว่าหรือเท่ากับขนาดของอาร์เรย์ ดังนั้น ArrayIndexOutOfBoundsException ถูกโยนทิ้ง
ตัวอย่างเช่น หากคุณรันโค้ดต่อไปนี้ มันจะแสดงองค์ประกอบในอาร์เรย์เพื่อขอให้คุณให้ดัชนีเพื่อเลือกองค์ประกอบ เนื่องจากขนาดของอาร์เรย์คือ 7 ดัชนีที่ถูกต้องจะเป็น 0 ถึง 6
ตัวอย่าง
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]); } }
แต่ถ้าคุณสังเกตผลลัพธ์ด้านล่าง เราได้ร้องขอองค์ประกอบที่มีดัชนี 9 เนื่องจากเป็นดัชนีที่ไม่ถูกต้องและ ArrayIndexOutOfBoundsException ยกขึ้นและการประหารชีวิตสิ้นสุดลง
ผลลัพธ์
ข้อยกเว้นรันไทม์ -
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)