Java中的array
(陣列)屬於引用的數據類型,是Java中的一種儲存容器(儲存在記憶體),可以存放任何的數據型別,包括基本型別和引用型別。
byte
、short
、int
、long
float
、double
char
boolean
array
有幾個特性:array
會有一個長度length
。index
(索引
)。index
從0
開始,所以array
最後一個元素的index
會是array
的length - 1
。index | 值 |
---|---|
0 | 台北 |
1 | 新北 |
2 | 桃園 |
3 | 新竹 |
4 | 苗栗 |
5 | 台中 |
6 | 彰化 |
7 | 雲林 |
💡 以上方的表格來對應,array
的第1個是台北,但是它的索引會是0。
array
需要關注的重點:array
的指定元素。array
的屬性
:例如length
代表array
長度。array
的遍歷。遍歷:對每一個元素進行操作。一維array
的記憶體解析。array
的方式第一種:靜態宣告(在宣告array
時就將值一起賦值)
int[] arr;
arr = new int[]{1,2,3,4};
int[] arr1 = new int[]{1,2,3,4}; // 也可以這樣寫
int[] arr2 = {1,2,3,4}; // 也可以這樣寫
第二種:動態宣告
int[] arr;
arr = new int[4];
arr[0] = 1
arr[1] = 2;
System.out.println(arr[0]); // 1
錯誤:
index 為 4 (array的第5個位置)
賦值已經超出array的長度。int[] arr = new int[4];
arr[4] = 10;
💡為什麼無法新增第5個值在
array
的第5個位置,因為當宣告array
時,長度已經被固定在記憶體中,在宣告時會根據array
的長度找到能夠放進這個長度的位置,在這個長度外的位置(不管是前後左右)有可能已經拿去存放其他的值,所以無法將array
的長度更動,如果真的要增加長度,必須新增一個新的array
(一般會使用複製的方式去新增)。
array
的值
: 透過array
的變數名和index
。int[] arr = {1,2,3,4};
System.out.println(arr[0]); // 1
array
:透過array.length
可以取得array
的長度,再使用for
循環即可對array
的每一個元素進行相對應的操作。int[] arr = {1,2,3,4};
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
// 1
// 2
// 3
// 4
array
時使用動態宣告
,但是並未賦值時,每一個相對應的型別都有自己的初始值:byte、short、int、long
): 0float、double
): 0.0char
): 0 (也可以看成是用'\u0000')Classes、Interfaces、Arrays、Enums、Records、Annotaions
): null💡靜態宣告時也可看成是一開始宣告時都是初始值,只是又馬上將初始值轉換成所賦的值。