Java数组
定义:数组是用来存储数据的集合。通常情况下我们可以把数组看成一个存储具有相同类型的变量集合。
数组的特点:
- 能够存储任意的数据类型。
- 数组元素下标从0开始,以数组长度减1结束。
- 一个数组不能存储不同的数据类型。
- 数组一旦被创建,它的大小是固定的。
一、一维数组
声明的方式:
(1).元素类型[] 数组名 = new 元素类型[任意长度];
eg: int[] arr = new int[10];
(2).元素类型 数组名[] = new元素类型[任意长度];
eg: int arr[] = new int[10]; (推荐(1))
(3).元素类型[] 数组名 = {元素1,元素2, 元素···};
eg: int[] arr = {1,2,3,4};
(4).元素类型[] 数组名 = new 元素类型[]{元素1,元素2,元素···};
eg: int[] arr = new int[]{1,2,3,4};
例题:打印数组的长度
Test.java
public class Test {
public static void main(String[] args) {
int[] arr = new int[5];
arr[0]=1;
arr[1]=2;
arr[2]=3;
arr[3]=4;
arr[4]=5;
System.out.println(arr.length); //打印数组的长度
}
}
运行结果:
5
例题:循环输出数组的值
public class Test {
public static void main(String[] args) {
int[] arr = new int[5];
for (int i = 0; i < arr.length; i++) {
arr[0]=1;
arr[1]=2;
arr[2]=3;
arr[3]=4;
arr[4]=5;
System.out.println(arr[i]); //循环输出数组的值
}
}
}
运行结果:
1
2
3
4
5
错误示例:
二、二维数组
声明的方式:
(1).元素类型[] [] 数组名 = new 元素类型[行] [列]
eg: int [] [] arr = new int [5] [6] //定义一个五行六列的数组
(2).元素类型[] [] 数组名 = {{元素1,元素2,元素3},{元素4,元素5,元素6},{···元素n}};
eg: int [] [] arr = {{1,2,3},{4,5,6},{7,8,9}};
给二维数组赋值:
int [] [] arr = new int [2] [3];
arr [0] [0]=1;
arr [0] [1]=2;
arr [0] [2]=3;
arr [1] [0]=4;
arr [1] [1]=5;
arr [1] [2]=6;
warning
第一个[]中的值不能超出0-2范围外即 x>=0&&x<2。
第二个[]中的值不能超出0-3范围外即x>=0&&x<3。
错误示例:
例子:
Test.java
public class Test {
public static void main(String[] args) {
int[][] arr = new int[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;
System.out.println("行数为:"+arr.length);
System.out.println("列数为:"+arr[0].length);
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
System.out.println(arr[i][j]);
}
}
}
}
运行结果:
行数为:2
列数为:3
1
2
3
4
5
6
三、数组的复制
复制数组的三种方法:
1.使用循环语句逐个的复制数组的元素。
2.使用System类中的静态方法arraycopy。
3.使用clone方法复制数组。
eg1:
使用for循环赋值
int[] array1 = {1,2,3,4,5};
int[] array2 = new int[array1.length];
for(int i = 0; i<array1.length; i++){
array2[i] = array1[i];
}
eg2:
arraycopy(array1,原数组起始位置,array2,原数组起始位置,array1.length);
int[] array = {1,2,3,4,5};
int[] array2 = new int[array.length];
System.arraycopy(array, 0, array2, 0, array.length);
eg3:
int[] array = {1,2,3,4,5};
int[] array2 = array.clone();