Java陣列的使用

cdhqyj發表於2023-01-28

本文介紹了在java開發中經常使用的陣列,以及陣列的使用方法,注意事項。

一.什麼是陣列

1. 陣列:陣列即是一堆邏輯上無序的元素的序列,用來儲存多個相同型別的資料,陣列可以看做是一個集合,其內部元素儲存在一個連續的記憶體塊當中,並透過索引(即陣列中元素的下標)來訪問。

2. 特點:

A. 陣列中的元素資料型別都相同;

B. 各元素在記憶體中的儲存是有先後順序的;

C. 表示陣列元素的時候,需要使用陣列名和該元素在陣列中的位置來表示;

3. 分類:

最簡單的形式是一維陣列,即陣列中直接儲存元素,如{1,2,3,4};其次是二維陣列,在二維陣列中的元素都是一維陣列,如{{123},{456},{789}};再次意義上可以有更多維的陣列。

二.Java中的陣列

(以下示例中皆以整型一維陣列 int array[] 為例)

1. 特點:

java中的陣列滿足陣列的所有含義和特點;

2. 宣告陣列:

在java中,宣告陣列時有兩種情況:有大小,或者無大小,同時在宣告陣列時,需要宣告陣列的資料型別,以及陣列的維度,宣告方式分為以下幾種:

a. int array[] = {1,2,3};直接在宣告陣列的同時進行賦值;

b. int array[] ;宣告陣列未進行賦值操作;

c. Int array[] = new int[10];宣告陣列時定義了陣列的大小;

3. 陣列長度:

使用陣列的 length 屬性,可已檢視陣列的大小:

Int length = array.lenth;

4. 遍歷陣列:

在開發中,根據陣列的特性,經常會透過迴圈來遍歷陣列,如for迴圈或forEach迴圈:

For迴圈,根據陣列的小標進行遍歷:
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}

ForEach迴圈,根據陣列的資料型別得到元素,進行遍歷:

for(Integer data : array){

System.out.println(data);

}

3. 型別轉換:

A. 陣列轉為Set集合:

使用java api 中Arrays 工具類進行轉換為list,再轉為set:
Set<Integer> set = new HashSet<Integer>(Arrays.asList(array));

B.陣列轉為List集合:

第一種:遍歷陣列,向list中新增元素;

第二種,使用api java.util.Arrays進行轉換:
List<Integer> list = Arrays.asList(array);

6. java陣列常用操作:

A. int陣列轉換為String:

String result =Arrays.toString(array);

B.判斷陣列是否包含元素:

使用陣列的contains 方法進行判斷,該方法返回值為boolean型別,如果包含該元素,返回值為true,否則返回false;

如:int array[] = {1,2,2,3,4,5};

array.contains(1)返回值為true;array.contains(6)返回值為false;

C.填充陣列:

第一種可透過迴圈陣列的下標(index),維陣列的每一個位置進行賦值(array[index] = data);

第二種可以透過工具類Arrays進行填充,如:Arrays.fill(array,5),將array的每個位置都賦值為5.

D.複製陣列:

第一種方法是直接指定新的陣列:int array2[] = Arrays.copyOf(array,20),將陣列array複製到array2中,同時指定array2的陣列大小是20;

第二種方法是根據指定範圍進行賦值,如:

Int array2[] = Arrays.copyOfRange(array,5,10);將array中第5位到第9位的元素複製到array2中。

E.比較陣列:

通常使用Arrays.equals()方法進行比較,返回值為boolean型別,如Arrays.equals(array,array2);

F.陣列排序:

在java中,通常可以透過迴圈,按照特定的業務邏輯進行排序,如果對元素沒有特殊要求,則可以透過Array.sort()方法進行排序,如:Arrays.sort(array);對陣列進行排序;

Arrays.sort(array,2,6);對陣列的第2個元素到第5個元素進行排序。

三.Java中的陣列與記憶體

在java中,若宣告陣列時直接進行賦值,則為陣列分配的記憶體中直接存入數值;若宣告陣列時沒有進行賦值,只說明瞭陣列的大小size,則在陣列的記憶體塊中,有size個狀態為null的記憶體塊被佔用;

當程式執行結束後,陣列的有效長度如果變小,這時需要注意陣列原先佔用的記憶體塊不會被jvm處理,如果這種情況比較多,則會發生記憶體洩漏,此時需要程式設計師在使用陣列後,及時對無效的資源進行釋放,即在陣列的該元素為空,array[index] = null.

四.總結

在java中,陣列是經常使用的技術,透過一個能夠儲存多個相同型別資料元素的容器來實現各種需求,同時在陣列內部可以透過位置下標來快速所以資料,增加了java程式的可讀性與健壯性;在使用陣列的同時,也需要注意陣列容易造成的記憶體洩漏等問題。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912514/viewspace-2933076/,如需轉載,請註明出處,否則將追究法律責任。

相關文章