1. 程式人生 > >JAVA陣列----引用資料型別

JAVA陣列----引用資料型別

1.陣列初始化

1.1 動態初始化(宣告並開闢空間)
陣列型別[] 陣列名稱 = new 陣列型別[長度]
例:開闢一個長度為5的字元型陣列:

char[] arr = new char[5];
  1. 陣列是通過下標索引來取得元素,下標預設從0開始,陣列下標超過陣列長度就會發生陣列越界異常(屬於執行時異常)。
  2. 陣列中每個元素都有預設值,預設值是該陣列的型別預設值
  3. 陣列名稱.length:取得陣列長度。
  4. 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對陣列的支援

  1. 排序
    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);
    }
}

在這裡插入圖片描述