如果在 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)

更新於: 2020-07-02

3K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.