Java數組01:數組的創建和使用


數組的定義

  • 數組是相同類型數據的有序集合
  • 數組描述的是相同類型的若干個數據,按照一定的先后次序排列組合而成
  • 其中,每一個數據稱作一個數組元素,每個數組元素可以通過一個下標來訪問,下標從0開始

數組的創建

首先必須聲明數組變量,才能在程序中使用數組

數值有三種初始化,分別為靜態初始化、動態初始化和默認初始化。因為數組是引用類型,因此和類一樣,數組的元素相當於類的實例變量,在數組創建被分配空間以后,會被隱式的初始化

public class Hello {
    public static void main(String[] args) {
        int[] nums;  //數組的聲明,數組類型int[]
        nums = new int[10];  //數組的創建,new對象
        int[] nums2 = new int[10];  //兩步可以合成一步
        //動態初始化
        nums2[0] = 1;  //根據下標給數組賦值
        //靜態初始化
        int[] num3 = {1, 2, 3, 4};  //也可以直接給數組賦值
        //默認初始化,值為0
        int[] num4 = new int[10];
        int sum = 0;
        for (int i = 0; i < num3.length; i++){  //.length方法獲取數組的長度
            sum += num3[i];  //數組下標從0開始,因此最大是num3.length - 1,超出會發生數組越界錯誤
        }
        System.out.println(sum);
        System.out.println(num4[0]);
    }
}

內存分析

  • 棧:存放基本變量類型(包含數值)、引用對象的變量(只是該引用在堆里面的具體地址)
  • 堆:存放new的對象和數組,可以被所有線程共享,不會存放別的對象引用
    image
  • 聲明數組時,只是在棧中存放了一個數組名,只有在創建數組時,才會在堆中分配new對象的空間,此時棧中的數組名成為對象的引用

數組的基本特點

  • 數組的長度是確定的,一旦被創建,其大小不可再更改
  • 數組的元素必須是相同類型,不允許出現混合類型
  • 數組中的元素可以是任何數據類型,包括基本類型和引用類型
  • 數組變量屬於引用類型,數組本身就是對象,數組元素相當於對象的成員變量。無論其保存的是原始類型還是其他對象類型,數組對象本身是在堆中的

數組的使用

增強for循環(不常用)

public class Hello {
    public static void main(String[] args) {
        int[] num = {1, 2, 3, 4, 5};  //定義一個數組
        for (int i : num){  //從數組里依次取出值,類似Python語言的for...in結構
            System.out.println(i);
        }
    }
}

數組作為方法傳參

public class Hello {
    public static void main(String[] args) {
        int[] arrays = {1, 2, 3, 4, 5};
        PrintArray(arrays);  //數組作為方法的參數
    }
    //打印數組元素
    public static void PrintArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++){
            System.out.print(arrays[i] + "\t");
        }
    }
}

數組作為返回值

public class Hello {
    public static void main(String[] args) {
        int[] arrays = {1, 2, 3, 4, 5};
        PrintArray(reverse(arrays));
    }
    //將數組元素反轉
    public static int[] reverse(int[] arrays){  //注意返回值類型為int[]
        int[] newArrays = new int[arrays.length];
        for (int i = 0; i < arrays.length; i++){
            newArrays[arrays.length - 1 - i] = arrays[i];
        }
        return newArrays;  //數組作為返回值
    }
    //打印數組的元素
    public static void PrintArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++){
            System.out.print(arrays[i] + "\t");
        }
    }
}

多維數組

多維數組可以看成是數組的數組,比如二維數組就是一個特殊的一維數組,其每一個元素都是一個一維數組

public class Hello {
    public static void main(String[] args) {
        int[][] arrays = {{1, 2}, {3, 4}, {5, 6}};  //二維數組的定義
        for (int i = 0; i < arrays.length; i++) {
            for (int j = 0; j < arrays[i].length; j++) {
                System.out.println(arrays[i][j]);
            }
        }
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM