JAVA数组
一,一维数组
是一种存储多个数据的数据结构,在内存中是一段连续的内存空间
特点:
数组是一种引用数据类型
数组是定长,长度一旦确定不可改变
一个数组中存储相同类型的数据
数组中数据是有序的,通过索引|下标进行管理
下标(索引)
从0开始,每次+1
根据数组的索引操作数组中的数据
第一个索引->0
最后一个数据的索引-> 数组名.length-1
1.1 数组的定义
声明:
变量的声明: 数据类型 变量名;
数组的声明: 数据类型[] 数组名; -->推荐
数据类型 数组名[];
数据类型 : 可以为任意数据类型(基本|引用)
规定当前数组中存储数据的类型
//定义一个int类型的数组
int[] a = new int[];
//定义一个引用类型的数组
String[] str = new String[];
初始化数组
//静态初始化数组
int[] a = new int[]{1,2,3};
//动态初始化数组
int[] b = new int[3];
b[0] = 1;
b[1] = 2;
b[2] = 3;
1.2 数组的length属性
length能够获取数组的长度
int[] arr = new int[]{1,2,3};
int a = arr.length;//获取数组长度
1.3 数组的遍历
数组可以通过for循环遍历数组中的元素
//定义一个数组
int[] arr = new int[]{1,2,3,4,5};
//循环遍历数组,arr.length为当前数组长度,来决定循环的次数
for(int i = 0;i < arr.lengrh;i++){
//将每个元素通过下标索引输出打印
System.out.println(arr[i]);
}
除了普通for循环外,还能使用增强for循环,即foreach来遍历数组
int[] arr = new int[]{1,2,3,4,5};
//先定义一个接受数组数据的变量,然后自动遍历数组将其值逐个赋值给变量a
for(int a : arr){
//输出打印a
System.out.println(a);
}
同时,java为我们提供了一种重写的toString()方法,能够用来遍历数组
int[] arr = new int[]{1,2,3,4,5};
//通过调用Arrays下的toString()方法,能够更简单的遍历数组元素
System.out.println(Arrays.toString(arr));
二,二维数组
2.1 定义
数据类型[ ][ ] 数组名 = new 数据类型[外层二维的长度][内层一维小数组长度];
//静态初始化
//内层小数组的长度可以不一致
int[][] arr = {{1,2,3,4},{2,8},{9,6,3}};
//动态初始化
int[][] arr2 = new int[2][];
arr[0] = new int[2];
arr[0][0] = 1;
arr[0][1] = 2;
arr[1] = new int[1];
arr[1][0] = 100;
2.2 二维数组的遍历方式
双重循环嵌套
- 普通嵌套增强
- 普通嵌套普通
- 增强嵌套增强
- 增强嵌套普通
1.双重普通for循环
public static void print1(int[][] arr){
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
2.普通嵌套增强
public static void print2(int[][] arr){
for (int i = 0; i < arr.length; i++) {
for(int a : arr[i]){
System.out.print(a+"\t");
}
System.out.println();
}
}
3.增强嵌套普通
public static void print3(int[][] arr){
for (int[] array : arr) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+"\t");
}
System.out.println();
}
}
4.增强嵌套普通
public static void print4(int[][] arr){
for (int[] array : arr) {
for (int a : array) {
System.out.print(a+"\t");
}
System.out.println();
}
}
java在Arrays中也为我们提供了遍历二维数组的方法
int[][] arr = {{1,2,3,4},{2,8},{9,6,3}};
System.out.println(Arrays.deepToString(arr));
三,Arrays工具类
该类包含用于操作数组的各种方法(例如排序和搜索)。 此类还包含一个静态工厂,允许将数组视为列表
3.1 toString()遍历数组
//遍历一维数组
Arrays.toString(arr);
//遍历二维数组
Arrays.deepToString(arr2);
3.2 equals()比较
//比较一维数组内容的是否一致
Arrays.equals(arr);
//比较二维数组内容的是否一致
Arrays.deepEquals(arr2);
3.3 copyOf()截取数组
//截取从索引0开始的4个数据,即[0,4)
Arrays.copyOf(arr,4);
//如果接受的是大于数组长度的数据,则超出部分自动初始化默认值
Arrays.copyOf(arr,20);
//copyOfRange截取从索引3到索引6之间的数组
Arrays.copyOfRange(arr,3,6);