1. 程式人生 > >2.Java陣列_一維陣列二維陣列的動態初始化與靜態初始化、方法接收/返回/修改陣列、java對陣列的排序/全拷貝/部分拷貝

2.Java陣列_一維陣列二維陣列的動態初始化與靜態初始化、方法接收/返回/修改陣列、java對陣列的排序/全拷貝/部分拷貝

Java陣列----引用資料型別,必須在使用前先初始化;否則會nullPointerException(執行時異常)。

(引用傳遞:多個棧記憶體指向同一塊堆記憶體)

1.一維陣列初始化

(1)動態初始化(宣告並開闢陣列)

資料型別[] 陣列名稱 = new 資料型別[長度];

如:宣告並開闢一個長度為5的整型陣列:int[] data = new data[5];

注:

  • 陣列通過下標索引來取得元素,下標預設從0開始。
  • 陣列越界:陣列下標超出陣列長度,陣列越界異常(執行時異常)。
  • 陣列中每個元素都有預設值,預設值是該資料型別預設值。
  • 取陣列長度:陣列名.length;
  • 陣列遍歷推薦用for-each迴圈(僅限於陣列內容讀取)。要修改陣列內容,使用常規for迴圈。

// JDK1.5 提供for-each迴圈。 for(int x: data){...}

(2)靜態初始化

簡化格式:資料型別[ ] 陣列名 = {值,值,...};

完整格式(推薦):資料型別[ ] 陣列名 = new 資料型別[ ] {值,值,...};

eg:int[ ] data = new int[ ] {1,3,5,7,9,10};

注:在陣列定義時,直接設定內容,根據值的個數確定陣列長度,且長度不可修改。

匿名陣列:System.out.println(new int[]{1,3,5,7,9,10}[1]);

2.二維陣列初始化

(1)動態初始化

資料型別[ ][ ] 陣列名稱 = new 資料型別[行個數][列個數]

eg:int[ ][ ] data = new int[3][4]; //開闢行數3列數4的整型陣列

(2)靜態初始化

資料型別[ ][ ] 陣列名稱 = new 資料型別[ ][ ]{{第一行的值},{第二行的值},...}

3.陣列與方法的互操作--引用傳遞

(1)方法接收陣列

(2)方法返回陣列

public static int[] init(){

      return new int[]{1,2,3};
}

(3)方法修改陣列

4.java對陣列的支援(應對筆試,可以直接呼叫)

(1)排序-----java.util.Arrays.sort(陣列名稱);

  • 支援所有基本資料型別陣列。

  • 內部使用雙軸快速排序

(2)陣列部分拷貝

System.arraycopy(源陣列名稱,源陣列開始點,目標陣列名稱,目標陣列開始點,拷貝長度);

(3)陣列全拷貝(*****)

  • java.util.Arrays.copyOf(源陣列名稱,新陣列長度):int[ ]
  • java動態陣列動態擴容方法