[TOC]
# 數組結構
數組是編程語言中最常用的一種**數據類型**。可以存儲多個數據。
**數組的要點**
* 存放的數據是相同的數據類型
* 數組的長度在定義時就確定了大小,數組是不可變長度的,或者說叫定長
* 數組中可以存放任意的數據類型(包含基本數據類型、引用數據類型、數組)
* 數組本身是引用數據類型(在棧內存中會存儲其在堆內存中的引用地址)
**定義語法**
```
type[] 變量名; // 強烈建議用這種命名
type 變量名[]; // 只要知道就可以
```
**數組的初始化**
在 Java 語言中,數組必須先被初始化,才能被使用。所謂的初始化,就是在內存中為數組元素分配空間,并為每個元素賦予初始值。
* 靜態初始化:顯式的指定每個數組元素的值,由系統來決定數組的大小;
* 動態初始化:只需要指定數組的長度,通過程序動態地給每個元素賦值。
靜態初始化
語法:
```
type[] arrayName = {element1, element2,....}; // 比較常見
type[] arrayName = new type[]{element1, element2,...};
```
```java
int[] arrs2;
arrs2 = new int[]{1, 2 ,3 ,4};
int[] arrs = {1, 2, 3, 4}; // 簡寫
```
動態初始化
語法:
```
type[] arrayName = new type[length];
```
> 數組中的索引,通過 arrayName\[index\] 獲取指定位置的數據,index 從 0 開始,最大值為 length-1
* 通過數組索引方式對數組元素進行賦值時,使用數組.length屬性作為 for 循環的條件。
* 在對數組元素進行操作時,一般使用 for 循環結構。
```java
for (int i = 0; i < arrs3.length; i++) {
arrs3[i] = (i+1) * 10;
}
for (int i = 0; i < arrs3.length; i++) {
System.out.println(arrs3[i]);
}
```
foreach 遍歷數組
```
for (type element : array | collections) {
element...
}
```
實例:
```java
for(int a : arrs3) {
System.out.println(a);
}
```
> 使用 foreach 一般情況下,只用作**遍歷數據**,如果要對數組中元素進行修改,還是需要使用 for 循環帶索引的方式進行,因為在上述的代碼中,a 只是循環元素的一個副本。
課程重點
* 理解各種數據類型在內存中的分配情況
