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

陣列的大小
在 Java 中,陣列被視為引用型別,您可以使用 new 關鍵字類似於物件建立陣列,並使用索引填充它,如下所示:
陣列的大小是固定的,如果您使用 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}; //size 7如果您透過直接初始化其值來建立陣列,則大小將是其中的元素數量。
因此,陣列的大小在其建立或初始化時確定,一旦完成,就不能更改陣列的大小。
儘管如此,如果您嘗試為超出其大小的陣列元素賦值,則會生成執行時異常。
示例
在以下示例中,我們建立了一個包含 7 個元素的陣列,然後嘗試為第 8 個元素賦值。
public class Test {
public static void main(String[] args) {
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;
myArray[7] = 4238;
System.out.println(Arrays.toString(myArray));
}
}執行時錯誤
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 at Test.main(Test.java:13)
更改陣列的大小
您可以透過將其重新分配給新的陣列來更改現有陣列的大小,如下所示:
示例
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
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;
System.out.println(Arrays.toString(myArray));
myArray = new int[8];
myArray[0] = 1254;
myArray[1] = 1458;
myArray[2] = 5687;
myArray[3] = 1457;
myArray[4] = 4554;
myArray[5] = 5445;
myArray[6] = 7524;
myArray[7] = 3165;
System.out.println(Arrays.toString(myArray));
}
}輸出
[1254, 1458, 5687, 1457, 4554, 5445, 7524] [1254, 1458, 5687, 1457, 4554, 5445, 7524, 3165]
在這種情況下,較早的陣列物件將被留給垃圾回收。因此,當廣泛使用時,這種方法會導致記憶體問題,因此不建議使用。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP