Java中的數組簡介

對於Java來說,如果需要用一種數據結構來保存若干個同類型的元素,那麼可以選擇使用數組。

所謂數組就是用來保存若干個同類型的數據元素,在Java中也可以認為數據元素就是對象。也就是說,只要給定了一個數據類型確定的數組,那麼該數組的元素數據類型都是一致的。當然,這裡所謂的一致是指,要麼跟數組的聲明類型一致,要麼屬於數組聲明類型的子類。

對於數組而言,想要使用必須進行初始化。數組的初始化一旦完成,就意味著該數組的長度固定不可以再發生任何變化。

需要說明的是,數組屬於引用數據類型,但是數組中存儲的元素可以是基本數據類型,也可以是引用數據包括數組。

那麼該如何使用數組呢?其實,數組的使用很簡單,需要經過兩步,分別是:聲明數組變量和初始化。

所謂聲明數組變量就是定義一個數組類型的變量。

聲明數組變量的方式有兩種, 分別是:數組元素類型[] 數組名 和 數組元素類型[] 數組名。

雖然從語法上講, 兩種聲明方式都被允許,但是在Java中常用的聲明方式還是數組元素類型[] 數組名這一方式。至於緣由很簡單,官方推薦這種寫法,而且很多開發Java的從業者也認同這種寫法。

Java中的數組簡介

初始化

所謂初始化就是為數組分配內存及每個數組元素分配初始值。對於數組的初始化而言,大致分為兩種,分別是:靜態初始化和動態初始化。

  • 靜態初始化

靜態初始化就是由編程者指定數組中每個元素的初始值,而數組的 長度由系統根據編程者指定的數組元素來進行計算。

其格式為:數組變量名 = new 數組類型[]{數組元素一,數組元素二,數組元素三...},,其中這些數組元素的數據類型必須跟聲明數組的類型一致(要麼跟聲明數據類型相同,要麼屬於聲明數據類型的子類)。

使用靜態初始化方式的示例代碼如下圖所示:

Java中的數組簡介

當然,為了方便,我們也可以將數組的聲明變量和初始化放在一起進行。這時候的示例代碼如下圖所示:

Java中的數組簡介

此外,對於靜態初始化方式還存在一種省略寫法,即可以將new 數組類型[]省略,直接用大括號包裹若干的初始值。使用更為簡略寫法的示例代碼如下圖所示:

Java中的數組簡介

  • 動態初始化

動態初始化是指編程者只指定數組的長度,而數組中每個元素的初始值由系統根據聲明數組的類型來自動指定。

動態初始化的格式為:數組變量名 = new 數組類型[數組長度]。需要說明一點的是,這裡的數組長度只能為可以當做int類型使用的類型,也就是除long類型之外的所有整數和字符類型(因為字符類型在JVM中是以Unicode碼的形式存在,Unicode碼是一個整數)。

動態初始化的例子如下圖所示:

Java中的數組簡介

同樣的,動態初始化也可以將聲明數組變量和初始化放在一起。放在一起的示例代碼如下圖所示:

Java中的數組簡介

而系統分配初始值的規則為:

  1. 如果是整數類型,則初始值為0.
  2. 如果是浮點數類型,則初始值為0.0。
  3. 如果是字符類型,則初始值為'/u0000'。
  4. 如果是布爾類型,則初始值為false。
  5. 如果是引用數據類型,則初始值為null。

關於系統根據數組類型自動分配初始值的示例代碼如下圖所示:

Java中的數組簡介

執行結果如下圖所示:

Java中的數組簡介

數組的使用

數組的使用包括給數組元素賦值和取數組元素值,這些操作都是通過數組索引來實現。需要注意的是,數組索引是從0開始的,因此最後一個數組元素的索引為數組長度減1。

關於對數組元素進行賦值和取值的示例代碼如下圖所示:

Java中的數組簡介

其執行結果如下圖所示:

Java中的數組簡介

如果索引的值不在表示範圍(小於0或大於數組長度減一),就會發生數組越界異常。如下圖所示:

Java中的數組簡介

其執行結果如下圖所示:

Java中的數組簡介

本數組的長度為3,也就是最大索引2,卻使用4取訪問數組,從而引發數組越界異常。同樣,如果用超出表示範圍的索引去進行賦值的時候,也會發生同樣的異常。只不過這裡就不進行演示了。

數組的遍歷

對於數組的遍歷來說,通常來說有兩種:普通for循環和foreach循環

  • 普通for循環

所謂的普通for循環就是從0開始到最大索引,依次輸出數組元素的值。其示例代碼如下圖所示:

Java中的數組簡介

其執行結果如下圖所示:

Java中的數組簡介

  • foreach循環

foreach循環是Java5之後新增的循環方式,其示例代碼如下圖與所示:

Java中的數組簡介

其執行結果如下圖所示:

Java中的數組簡介


分享到:


相關文章: