1. 程式人生 > >java學習之陣列

java學習之陣列

1 陣列的定義

在Java中,可以使用以下格式來定義一個數組。如下

資料型別[] 陣列名 = new 資料型別[元素個數或陣列長度];

int[] x = new int[100];

上述語句就相當於在記憶體中定義了100個int型別的變數,第一個變數的名稱為x[0],第二個變數的名稱為x[1],以此類推,第100個變數的名稱為x[99],這些變數的初始值都是0。為了更好地理解陣列的這種定義方式,可以將上面的一句程式碼分成兩句來寫,具體如下:

int[] x;              // 宣告一個int[]型別的變數

x = new int[100];   // 建立一個長度為100的陣列

在Java中,為了方便我們獲得陣列的長度,提供了一個length屬性,在程式中可以通過“陣列名.length”的方式來獲得陣列的長度,即元素的個數。

接下來,通過一個案例來演示如何定義陣列以及訪問陣列中的元素,如下所示。ArrayDemo01.java

     public class ArrayDemo01 {
         public static void main(String[] args) {
         int[] arr; // 宣告變數
         arr = new
int[3]; // 建立陣列物件 System.out.println("arr[0]=" + arr[0]); // 訪問陣列中的第一個元素 System.out.println("arr[1]=" + arr[1]); // 訪問陣列中的第二個元素 System.out.println("arr[2]=" + arr[2]); // 訪問陣列中的第三個元素 System.out.println("陣列的長度是:" + arr.length); // 列印陣列長度 } }

執行結果如下圖所示:

在上述程式碼中聲明瞭一個int[]型別變數arr,並將陣列在記憶體中的地址賦值給它。在5~7行程式碼中通過角標來訪問陣列中的元素,在第8行程式碼中通過length屬性訪問陣列中元素的個數。從列印結果可以看出,陣列中的三個元素初始值都為0,這是因為當陣列被成功建立後,陣列中元素會被自動賦予一個預設值,根據元素型別的不同,預設初始化的值也是不一樣的。具體如下表所示。

資料型別

預設初始化值

byte、short、int、long

0

float、double

0.0

char

一個空字元(空格),即’\u0000’

boolean

false

引用資料型別

null,表示變數不引用任何物件

如果在使用陣列時,不想使用這些預設初始值,也可以顯式地為這些元素賦值。接下來通過一個程式來學習如何為陣列的元素賦值,如下所示。ArrayDemo02.java

     public class ArrayDemo02 {
         public static void main(String[] args) {
             int[] arr = new int[4]; // 定義可以儲存4個整數的陣列
             arr[0] = 1; // 為第1個元素賦值1
             arr[1] = 2; // 為第2個元素賦值2
             // 下面的程式碼是列印陣列中每個元素的值
             System.out.println("arr[0]=" + arr[0]);
             System.out.println("arr[1]=" + arr[1]);
             System.out.println("arr[2]=" + arr[2]);
             System.out.println("arr[3]=" + arr[3]);
         }
     }

執行結果如下:

在上述程式碼中,第3行程式碼定義了一個數組,此時陣列中每個元素都為預設初始值0。第2、3行程式碼通過賦值語句將陣列中的元素arr[0]和arr[1]分別賦值為1和2,而元素arr[2]和arr[3]沒有賦值,其值仍為0,因此列印結果中四個元素的值依次為1、2、0、0。

陣列的靜態初始化有兩種方式,具體格式如下:

1、型別[] 陣列名 = new 型別[]{元素,元素,……};

2、型別[] 陣列名 = {元素,元素,元素,……};

2陣列遍歷

 

在運算元組時,經常需要依次訪問陣列中的每個元素,這種操作稱作陣列的遍歷。接下來通過一個案例來學習如何使用for迴圈來遍歷陣列,如下所示。ArrayDemo04.java

public class ArrayDemo04 {
    public static void main(String[] args) {
        int[] arr = { 1, 2, 3, 4, 5 }; // 定義陣列
        // 使用for迴圈遍歷陣列的元素
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]); // 通過索引訪問元素
        }
    }
}

執行結果如下:

上述程式碼中,定義一個長度為5的陣列arr,陣列的角標為0~4。由於for迴圈中定義的變數i的值在迴圈過程中為0~4,因此可以作為索引,依次去訪問陣列中的元素,並將元素的值打印出來。