JAVA陣列的定義及用法

weixin_30924079發表於2020-04-04

陣列是有序資料的集合,陣列中的每一個元素具有同樣的陣列名和下標來唯一地確定陣列中的元素。

 

1. 一維陣列

 

1.1 一維陣列的定義

 

type arrayName[];

type[] arrayName;

 

當中型別(type)能夠為Java中隨意的資料型別,包含簡單型別組合型別,陣列名arrayName為一個合法的識別符號,[]指明該變數是一個陣列型別變數。

 

另外一種形式對C++開發人員可能認為非常奇怪,只是對JAVA或C#這種開發語言來說,另外一種形式可能更直觀,由於這裡定義的僅僅是個變數而已,系統並未對事實上例化,僅僅需指明變數的型別就可以,也不需在[]指定陣列大小。(第一種形式是不是僅僅是為了相容曾經的習慣,畢竟C語言的影響太大了?)

 

比如:

int intArray[];

宣告瞭一個整型陣列,陣列中的每一個元素為整型資料。與C、C++不同,Java在陣列的定義中並不為陣列元素分配記憶體,因此[]中不用指出陣列中元素個數,即陣列長度,並且對於如上定義的一個陣列是不能訪問它的不論什麼元素的。我們必須為它分配記憶體空間,這時要用到運算子new,其格式例如以下:

arrayName=new type[arraySize];

當中,arraySize指明陣列的長度。如:

intArray=new int[3];

為一個整型陣列分配3個int型整數所佔領的記憶體空間。

 

通常,這兩部分能夠合在一起,格式例如以下:

type arrayName=new type[arraySize];

比如:

int intArray=new int[3];

 

1.2 一維陣列元素的引用

定義了一個陣列,並用運算子new為它分配了記憶體空間後,就能夠引用陣列中的每個元素了。陣列元素的引用方式為:

 

arrayName[index]

當中:index為陣列下標,它能夠為整型常數或表示式。如a[3],b[i](i為整型),c[6*I]等。下標 從0開始,一直到陣列的長度減1。對於上面樣例中的in-tArray數來說,它有3個元素,分別為:

intArray[0],intArray[1],intArray[2]。注意:沒有intArray[3]。

 

另外,與C、C++中不同,Java對陣列元素要進行越界檢查以保證安全性。同一時候,對於每一個陣列都有一個屬性length指明它的長度,比如:intArray.length指明陣列intArray的長度。

 

public class ArrayTest{ public static void main(String args[]){ int i; int a[]=new int[5]; for(i=0;i<5;i++) a[i]=i; for(i=a.length-1;i>=0;i--) System.out.println("a["+i+"]="+a[i]); } }  

 

執行結果例如以下:

C:/>java ArrayTest

a[4]=4
a[3]=3
a[2]=2
a[1]=1
a[0]=0

該程式對陣列中的每一個元素賦值,然後按逆序輸出。

 

1.3 一維陣列的初始化

對陣列元素能夠依照上述的樣例進行賦值。也能夠在定義陣列的同一時候進行初始化。

比如:

int a[]={1,2,3,4,5};

用逗號(,)分隔陣列的各個元素,系統自己主動為陣列分配一定空間。

 

與C中不同,這時Java不要求陣列為靜態(static),事實上這裡的變數相似C中的指標,所以將其作為返回值給其他函式使用,仍然是有效的,在C中將區域性變數返回給呼叫函式繼續使用是剛開始學習的人非常easy犯的錯誤。

 

 

2. 多維陣列

與C、C++一樣,Java中多維陣列被看作陣列的陣列。比如二維陣列為一個特殊的一維陣列,其每一個元素又是一個一維陣列。以下我們主要以二維數為例來進行說明,高維的情況是相似的。

 

2.1 二維陣列的定義

二維陣列的定義方式為:

type arrayName[][];

 

比如:

int intArray[][];

 

與一維陣列一樣,這時對陣列元素也沒有分配記憶體空間,同要使用運算子new來分配記憶體,然後才幹夠訪問每一個元素。

對高維陣列來說,分配記憶體空間有以下幾種方法:

 

1. 直接為每一維分配空間,如:

int a[][]=new int[2][3];

 

2. 從最高維開始,分別為每一維分配空間,如:

int a[][]=new int[2][];
a[0]=new int[3];
a[1]=new int[3];

完畢1中同樣的功能。這一點與C、C++是不同的,在C、C++中必須一次指明每一維的長度。

 

2.2 二維陣列元素的引用

對二維陣列中每一個元素,引用方式為:arrayName[index1][index2] 當中index1、index2為下標,可為整型常數或表示式,如a[2][3]等,相同,每一維的下標都從0開始。

 

2.3 二維陣列的初始化

有兩種方式:

1. 直接對每一個元素進行賦值。

2. 在定義陣列的同一時候進行初始化。

 

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

定義了一個3×2的陣列,並對每一個元素賦值。

轉載於:https://www.cnblogs.com/yxwkf/p/3821098.html

相關文章