您的位置:

Java数组详解

一、数组的基本概念

1.1 数组的定义

在Java中,数组是一种数据类型,用于存储同一种数据类型的多个元素。数组是一个有序集合,它的每个元素都有一个与之对应的索引。


//定义一个int类型的数组
int[] arr = new int[5];

1.2 数组的长度

数组的长度指的是数组中元素的个数,可以通过数组的length属性获取。


int[] arr = new int[5];
System.out.println(arr.length);//输出结果为5

1.3 数组的访问

通过下标的方式可以访问数组中的元素,下标从0开始,下标的最大值为数组的长度减1。


int[] arr = {1,2,3,4,5};
System.out.println(arr[0]);//输出结果为1

二、数组的初始化

2.1 静态初始化

静态初始化是指在定义数组时就为数组的元素赋值,格式如下:


//定义数组并赋初值
int[] arr = {1,2,3,4,5};

2.2 动态初始化

动态初始化是指在定义数组时只给出数组的长度,然后在程序运行时为数组的元素赋值,格式如下:


//定义数组并分配内存空间
int[] arr = new int[5];
//为每个元素赋值
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;

三、数组的遍历

3.1 for循环遍历


int[] arr = {1,2,3,4,5};
for(int i=0;i<arr.length;i++){
    System.out.println(arr[i]);
}

3.2 foreach循环遍历(增强for循环)


int[] arr = {1,2,3,4,5};
for(int i : arr){
    System.out.println(i);
}

四、数组的常用操作

4.1 数组元素的修改


int[] arr = {1,2,3,4,5};
arr[0] = 0;
System.out.println(arr[0]);//输出结果为0

4.2 数组元素的查找


int[] arr = {1,2,3,4,5};
int index = Arrays.binarySearch(arr,3);
System.out.println(index);//输出结果为2

4.3 数组元素的排序


int[] arr = {4,3,2,1,5};
Arrays.sort(arr);//排序
for(int i : arr){
    System.out.println(i);
}

五、多维数组

5.1 二维数组

二维数组是数组中的一种,它是由多个一维数组组成的数组。在Java中,二维数组逻辑上是一个表格,它有行和列。二维数组的定义如下:


int[][] arr = new int[3][4];

5.2 二维数组的遍历


int[][] arr = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
        System.out.print(arr[i][j] + " ");
    }
    System.out.println();
}

5.3 三维数组

三维数组是由多个二维数组组成的数组,可以理解为由多个表格组成的数组。它的定义如下:


int[][][] arr = new int[3][4][5];

5.4 三维数组的遍历


int[][][] arr = {
        {{1,2,3},{4,5,6}},
        {{7,8,9},{10,11,12}}
};
for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
        for(int k=0;k<arr[i][j].length;k++){
            System.out.print(arr[i][j][k] + " ");
        }
        System.out.println();
    }
    System.out.println();
}

六、数组的注意事项

6.1 数组越界异常(ArrayIndexOutOfBoundsException)

如果访问一个不存在的数组元素,就会抛出数组越界异常。


int[] arr = {1,2,3,4,5};
System.out.println(arr[5]);//会抛出数组越界异常

6.2 数组初始化时不能指定两个或两个以上的维度的长度


int[][] arr = new int[3][4][5];//会编译错误

七、总结

Java中的数组是一种有序、可重复的集合类型,其长度是固定的,定义时必须指定其长度。数组可以是一维、多维,一维数组逻辑上是一个向量,多维数组逻辑上是一个表格,数组中的元素可以通过下标进行访问、修改、排序、查找等操作。