JAVA陣列----引用資料型別
阿新 • • 發佈:2018-12-09
1.陣列初始化
1.1 動態初始化(宣告並開闢空間)
陣列型別[] 陣列名稱 = new 陣列型別[長度]
例:開闢一個長度為5的字元型陣列:
char[] arr = new char[5];
- 陣列是通過下標索引來取得元素,下標預設從0開始,陣列下標超過陣列長度就會發生陣列越界異常(屬於執行時異常)。
- 陣列中每個元素都有預設值,預設值是該陣列的型別預設值
- 陣列名稱.length:取得陣列長度。
- for-each迴圈(僅限於陣列內容讀取,不能修改陣列內容)
for(int x : arr){ //等價於for(int i = 0; i < arr.length;i++) System.out.println(x + " "); //等價於System.out.println(data[i] + " "); }
陣列屬於引用資料型別,必須在使用前先初始化,否則會丟擲NullPointerException異常(屬於執行時異常)。
1.2 陣列靜態初始化
資料型別[] 陣列名稱 = new 資料型別{值,值,…}
例:
int[] data = new int{1, 2, 3, 4};
在陣列定義的時候直接設定值,根據值的個數確定陣列長度,陣列長度一旦確定是不可改變的。
2.JAVA對陣列的支援
- 排序
java.util.Arrays.sort(陣列名稱);----支援所有基本資料型別
例:
public class Test{ public static void main(String[] args){ String[] arr = new String[]{"張三", "王五", "李四"}; java.util.Arrays.sort(arr); for(String str : arr){ System.out.println(str); } } }
2. 陣列的部分拷貝
System.arraycopy(源陣列名稱,源陣列開始點,目標陣列名稱,目標陣列開始點,拷貝長度)
例:
public class Test{ public static void main(String[] args){ String[] str1 = new String[]{"張三", "李四", "王五", "蛋哥"}; String[] str2 = new String[]{"鵬哥", "哈哈", "呵呵"}; System.arraycopy(str1,1,str2,2,1); for(String str : str2){ System.out.println(str); } } }
3. 陣列全拷貝
java.util.Arrays.copyOf(源陣列名稱,新陣列長度)----java動態陣列動態擴容
例:
public class Test{
public static void main(String[] args){
String[] str1 = new String[]{"張三", "李四", "王五", "蛋哥"};
System.out.println(java.util.Arrays.copyOf(str1, 10).length);
}
}