如果在 Java 中嘗試訪問索引大於陣列大小的元素會發生什麼?
陣列是一種資料結構/容器/物件,用於儲存固定大小的相同型別元素的順序集合。陣列的大小/長度在建立時確定。
陣列中元素的位置稱為索引或下標。陣列的第一個元素儲存在索引 0 處,第二個元素儲存在索引 1 處,依此類推。
每個陣列元素都透過一個表示式訪問,該表示式包含陣列名稱,後跟方括號中所需元素的索引。
例如,如果建立了一個名為 myArray 的包含 6 個元素的陣列,則可以訪問索引為 3 的陣列元素,如下所示:
System.out.println(myArray[3]); //25

在 Java 中建立陣列
在 Java 中,陣列被視為引用型別,您可以使用 new 關鍵字類似於物件建立陣列,並使用索引填充它,如下所示:
int myArray[] = new int[7]; myArray[0] = 1254; myArray[1] = 1458; myArray[2] = 5687; myArray[3] = 1457; myArray[4] = 4554; myArray[5] = 5445; myArray[6] = 7524;
或者,您可以直接在花括號中分配值,用逗號 (,) 分隔它們,如下所示:
int myArray = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};訪問大於其大小的陣列元素
雖然您可以使用名稱和索引引用陣列的元素,如下所示:
myArray[5];
但您無法訪問大於陣列大小的元素。即,如果您建立了一個包含 7 個元素的陣列,如您在圖中觀察到的,您可以訪問到 myArray[6]。

如果您嘗試訪問大於其大小的陣列位置(索引),程式將成功編譯,但在執行時會生成一個ArrayIndexOutOfBoundsException 異常。
示例
public class AccessingElements {
public static void main(String[] args) {
//Creating an integer array with size 5
int inpuArray[] = new int[5];
//Populating the array
inpuArray[0] = 41;
inpuArray[1] = 98;
inpuArray[2] = 43;
inpuArray[3] = 26;
inpuArray[4] = 79;
//Accessing index greater than the size of the array
System.out.println( inpuArray[6]);
}
}執行時異常
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6 at myPackage.AccessingElements.main(AccessingElements.java:17)
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP