JavaSE09-数组详解


目录
  • 一、数组的创建
    • 1.什么是数组?
    • 2.创建数组
    • 3.初始化
  • 二、数组的使用
    • 1.for循环
    • 2.数组作为方法的参数
    • 3.数组作为返回值
  • 三、多维数组

一、数组的创建

1.什么是数组?

数组是相同类型数据的有序集合,其中,每一个数据称为一个数组元素,每个数组元素都可以通过下标来进行访问。举个例子,nums = {1,2,3,4,5} 就是一个整数数组,每个数组元素都是整数,从左到右的下标分别是0,1,2,3,4,nums[0]=1,nums[4]=5。

2.创建数组

一般来说创建数组需要如下操作:
首先,必须声明数组变量。

dataType[] arrayRefVar;  //首选
	or
dataType arrayRefVar[];  //不建议使用  

然后,使用new操作创建数组(分配内存)。

arratRefvar = new dataType[arraysize]

最后,对数组中的元素进行赋值。

arratRefvar[n] = data;

前两步可以合并,直接声明并创建数组。

dataTpye[] arratRefvar = new dataType[arraysize]

下面是一个简单的例子:

public static void main(String[] args) {
        int[] nums;  //声明
        nums = new int[5];  //创建一个大小为5的整数数组,此时数组元素是对应类型的默认值
        //int[] nums1 = new int[5];  //声明并创建

        //赋值
        nums[0]=1;
        nums[1]=2;
        nums[2]=3;
        nums[3]=4;
        nums[4]=5;

        //nums.length:数组长度
        for (int i = 0; i < nums.length; i++) {
            System.out.println(nums[i]);
        }
    }

3.初始化

数组一般有两种初始化方法:

  • 静态初始化:创建时直接赋值。
  • 动态初始化:先创建再赋值。若创建后不手动赋值,则进行默认初始化,即数组元素为相应类型的默认值。
  1. 静态初始化

    //静态初始化:直接赋值
    int[] a = {1,2,3};
    
  2. 动态初始化

    //动态初始化:先创建再赋值,若不赋值即为默认初始化
    int[] b = new int[3];
    //int[] b;
    //b = new int[3];
    b[0] = 1;
    b[1] = 2;
    b[2] = 3;
    

二、数组的使用

1.for循环

数组经常会与for循环一同使用。

public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        //for循环
        //遍历数组的所有元素
        for (int array : arrays) {
            System.out.println(array);
        }
    }

2.数组作为方法的参数

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.println(arrays[i]);
        }
    }

3.数组作为返回值

public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        int[] resverse = reverse(arrays);  //方法返回一个数组
        printArray(resverse);
    }

    //数组作为返回值
    //反转数组
    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;
    }

    //打印数组所有元素
    public static void printArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.print(arrays[i]+" ");
        }
    }

三、多维数组

多维数组可以看成是数组的数组,比如二维数组,可以看作是特殊的一维数组,即每个数组元素都是一个一维数组。

//一个2行5列的二维数组
int[][] a= new int[2][5];
public static void main(String[] args) {
        //一个二维数组
        int[][] arraysTwo = {{0,1,2},{3,4,5}};
        System.out.println(arraysTwo[0][1]);  //1
        System.out.println(arraysTwo[1][0]);  //3
    }

最后,牢记数组的四个基本特点:

  • 数组长度是固定的,数组一旦被创建,它的大小就是不可改变的
  • 数组元素必须是相同类型,不允许出现混合类型
  • 数据中的元素可以是任意数据类型,包括基本数据类型和引用数据类型
  • 数组变量是引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身是对象,Java中对象是在堆中的