1. 程式人生 > 其它 >JAVA陣列基礎02

JAVA陣列基礎02

JAVA陣列基礎02

陣列的四個基本特點

  • 長度是確定的,陣列一旦被建立,它的大小就是不可改變的。
  • 元素必須是相同型別,不允許出現混合型別
  • 陣列中的元素可以是任何資料型別,包括基本型別和引用型別
  • 陣列變數屬於引用型別,陣列也可以看成是物件,陣列中的每個元素相當於該物件的成員變數
  • 陣列本身就是物件,Java中物件是在堆中的,因此陣列無論儲存原始型別還是其他物件型別,陣列物件本身是在堆中的

陣列邊界

  • 下標的合法區間[0,length-1],如果越界就會報錯
  • ArrayIndexOutOfBoundsException : 陣列下標越界異常
  • 陣列是相同型別(型別可以是任意型別)的有序集合
  • 陣列也是物件。陣列元素相當於物件的成員變數
  • 陣列長度是確定的,不可變的。越界則會報錯

陣列使用

  • 普通的For迴圈
  • For-Each迴圈
  • 陣列作方法入參
  • 陣列做返回值
public static void main(String[] args) {
    int[] arrays = {1,2,3,4,5};
    //列印全部的陣列元素
    for (int i = 0; i < arrays.length; i++) {
        System.out.println(arrays[i]);
    }
    System.out.println("======================");
    //計算所有元素的和
    int sum = 0;
    for (int i = 0; i < arrays.length; i++) {
        sum += arrays[i];
    }
    System.out.println("總和="+sum);
    System.out.println("==========================");
    //查詢最大元素
    int max = arrays[0];
    for (int i = 0; i < arrays.length; i++) {
        if(arrays[i]>max){
            max = arrays[i];
        }
    }
    System.out.println("最大值:"+max);
public static void main(String[] args) {
    int[] arrays = {1,2,3,4,5};
    //jdk1.5開始, 沒有下標
    for (int array : arrays) {
        System.out.println(array);
    }
    printArray(arrays);
}

//列印陣列元素
public static void printArray(int[] arrays){
    for (int i = 0; i < arrays.length; i++) {
        System.out.print(arrays[i]+" ");
    }
}
//反轉陣列
public static int[] reverse(int[] arrays){
    int [] result = new int[arrays.length];
    //反轉的操作
    for (int i = 0,j=result.length-1; i <arrays.length ; i++,j--) {
        result[j] = arrays[i];
    }
    return result;
}

多維陣列

  • 多維陣列可以看作是陣列的陣列,比如二維陣列就是一個特殊的陣列,其每一個元素都是一個一維陣列

  • 二維陣列

int a[][] = new int[2][5];
  • 上面的二維陣列a可以看作一個兩行五列的陣列
public static void main(String[] args) {
    //[4][2]
    /*
    1,2 array[0]
    2,3 array[0]
    3,4 array[0]
    4,5 array[0]
     */
    int[][] array = {{1,2},{2,3},{3,4},{4,5}};
    
    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array[i].length; j++) {
            System.out.println(array[i][j]);
        }
    }
}