原神:夜蘭技能武器命座詳細解讀,後臺掛水增傷50%,新的人權卡
阿新 • • 發佈:2022-03-31
陣列是最簡單的資料結構
1 定義
-
陣列是相同型別資料的有序集合
-
陣列描述的是相同型別的若干資料,按照一定的先後次序排列而成
-
其中,每一個數組稱作一個數組元素,每個陣列元素可以通過一個下標來訪問他們
PS:陣列下標是從0開始的
2 建立
首先必須宣告陣列變數,才能在程式中使用陣列。
2.1 宣告陣列
dateType[] array; //首選
或
dateType array[]; //效果相同;該定義方法是為了相容C和C++,它們定義使用這種方法。
2.2 建立陣列
Java語言使用 new 操作符來建立陣列
dateType[] array=new dataType[arraySize];
PS:獲取陣列長度:arrays.length
2.3 例項1
package com.study;
public class T {
public static void main(String[] args) {
//變數型別 變數名=變數值;
//陣列型別 陣列名
int[] arr; //宣告
arr=new int[10];//開闢陣列空間大小 10
}
}
2.4 例項2
package com.study; public class T { public static void main(String[] args) { int[] arr;//宣告一個數組 arr = new int[10];//建立一個數組,大小為10 //陣列元素賦值 arr[0] = 10; arr[1] = 8; //求和 int sum = 0; for (int i = 0; i < arr.length; i++) { sum += arr[i]; } System.out.println("總和為:"+sum); } }
圖解:
3 初始化
3.1 靜態初始化
在定義陣列的時候就對其進行初始化操作。
int[] a = {1,2,3}
PS:靜態初始化,定義之後長度不可改變,這是一個基本型別。
3.2 動態初始化
int[] a = new int[2];
a[0]=1;
a[1]=2;
3.3 預設初始化
陣列是引用型別,它的元素相當於類的例項變數,因此陣列一旦分配空間,其中的每個單元元素也被按照例項變數同樣的方式被隱式初始化。
3.4 例項
package com.study; public class T { public static void main(String[] args) { //靜態初始化:建立+賦值 int[] arr = {1, 2, 3, 4, 5, 6}; Man[] man_s = {new Man(), new Man()}; //動態初始化:包含預設初始化 int[] b = new int[10]; b[0] = 10; } }
4 基本特點
-
長度是確定的。陣列一旦被建立,它的大小就是不可以改變的
-
其元素必須是相同型別,不允許出現混合型別
-
陣列中的元素可以是任何資料型別,包括基本型別和引用型別。
-
陣列變數屬於引用型別,陣列也可以看成是物件,陣列中的每個元素相當於該物件的成員變數
PS:
- 陣列本身就是物件,Java中物件是在堆中的,因此陣列無論儲存原始型別還是其他物件型別,陣列物件本身是在堆中的
- new 出來的關鍵詞都是在堆中的
5 陣列邊界
下標的合法區間:[0,length-1],如果越界就會報錯;
package com.study;
public class T {
public static void main(String[] args) {
int[] arr = new int[2];
System.out.println(arr[2]);
}
}
ArrayIndexOutOfBoundsException:陣列下標越界異常!
總結
-
陣列是相同資料型別的有序集合
-
陣列也是物件,陣列元素相當於物件的成員變數
-
陣列長度是確定的,如果越界,會報ArrayIndexOutOfBoundsException