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