Java陣列01:陣列的建立和使用
阿新 • • 發佈:2021-09-05
陣列的定義
- 陣列是相同型別資料的有序集合
- 陣列描述的是相同型別的若干個資料,按照一定的先後次序排列組合而成
- 其中,每一個數據稱作一個數組元素,每個陣列元素可以通過一個下標來訪問,下標從0開始
陣列的建立
首先必須宣告陣列變數,才能在程式中使用陣列
數值有三種初始化,分別為靜態初始化、動態初始化和預設初始化。因為陣列是引用型別,因此和類一樣,陣列的元素相當於類的例項變數,在陣列建立被分配空間以後,會被隱式的初始化
public class Hello { public static void main(String[] args) { int[] nums; //陣列的宣告,陣列型別int[] nums = new int[10]; //陣列的建立,new物件 int[] nums2 = new int[10]; //兩步可以合成一步 //動態初始化 nums2[0] = 1; //根據下標給陣列賦值 //靜態初始化 int[] num3 = {1, 2, 3, 4}; //也可以直接給陣列賦值 //預設初始化,值為0 int[] num4 = new int[10]; int sum = 0; for (int i = 0; i < num3.length; i++){ //.length方法獲取陣列的長度 sum += num3[i]; //陣列下標從0開始,因此最大是num3.length - 1,超出會發生陣列越界錯誤 } System.out.println(sum); System.out.println(num4[0]); } }
記憶體分析
- 棧:存放基本變數型別(包含數值)、引用物件的變數(只是該引用在堆裡面的具體地址)
- 堆:存放new的物件和陣列,可以被所有執行緒共享,不會存放別的物件引用
- 宣告陣列時,只是在棧中存放了一個數組名,只有在建立陣列時,才會在堆中分配new物件的空間,此時棧中的陣列名成為物件的引用
陣列的基本特點
- 陣列的長度是確定的,一旦被建立,其大小不可再更改
- 陣列的元素必須是相同型別,不允許出現混合型別
- 陣列中的元素可以是任何資料型別,包括基本型別和引用型別
- 陣列變數屬於引用型別,陣列本身就是物件,陣列元素相當於物件的成員變數。無論其儲存的是原始型別還是其他物件型別,陣列物件本身是在堆中的
陣列的使用
增強for迴圈(不常用)
public class Hello {
public static void main(String[] args) {
int[] num = {1, 2, 3, 4, 5}; //定義一個數組
for (int i:num){ //從數組裡依次取出值,類似Python語言的for...in結構
System.out.println(i);
}
}
}
陣列作為方法傳參
public class Hello { public static void main(String[] args) { int[] arrays = {1, 2, 3, 4, 5}; PrintArray(arrays); //陣列作為方法的引數 } //列印陣列元素 public static void PrintArray(int[] arrays){ for (int i = 0; i < arrays.length; i++){ System.out.print(arrays[i] + "\t"); } } }
陣列作為返回值
public class Hello {
public static void main(String[] args) {
int[] arrays = {1, 2, 3, 4, 5};
PrintArray(reverse(arrays));
}
//將陣列元素反轉
public static int[] reverse(int[] arrays){ //注意返回值型別為int[]
int[] newArrays = new int[arrays.length];
for (int i = 0; i < arrays.length; i++){
newArrays[arrays.length - 1 - i] = arrays[i];
}
return newArrays; //陣列作為返回值
}
//列印陣列的元素
public static void PrintArray(int[] arrays){
for (int i = 0; i < arrays.length; i++){
System.out.print(arrays[i] + "\t");
}
}
}