数组是用来存储固定大小的同类型元素,是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素
一、声明创建数组
声明数组:
1. 类型 [] 变量名;
2. 类型 变量名 [] ;
创建数组:
1. 类型[] 变量名 = new 类型[数组长度];
2. 类型[] 变量名 = {元素1, 元素2, 元素3,... };
3. 类型[] 变量名 = new 类型[] {元素1, 元素2,...};
二、多维数组
多维数组可以看成是数组的数组,二维数组其实是一个一维数组,它的每一个元素又是一个一维数组。所以声明和创建大体相同。
int[][] a = new int[1][]; // 定义数组长度为1
int[][] a = {{4,5,6},{7,8,9}}; // 指定数组元素
int[][] a = new int[][]{{4,5,6},{7,8,9}};
上述元素可看成如下排布:
+---0---1---2---
0 | 4 | 5 | 6 |
1 | 7 | 8 | 9 |
访问元素:
a[0][0] = 4;
a[0][1] = 5;
a[0][2] = 6;
a[1][0] = 7;
a[1][1] = 8;
a[1][2] = 9;
三、Arrays类
Arrays类中提供所以的方法都是static类型的;
常用的方法:
- 给数组赋值:fill
- 比较数组:equals
- 对数组排序: sort,升序
- 查找数组元素: binarySearch对以排序的数组进行二分查找
- 打印数组元素:toString
// 给数组a进行赋值
int [] a = new int[4];
Arrays.fill(a,1);// [1, 1, 1, 1]
Arrays.fill(a,2,3, 7);// 指定index范围的元素为 7
System.out.println(Arrays.toString(a)); // [1, 1, 7, 1]
// 比较数组
int [] a = {1, 9, 5, 7, 3};
int [] b = {1, 9, 5, 7, 4};
System.out.println(Arrays.equals(a,a)); // true 自己跟自己比
System.out.println(Arrays.equals(a,null)); // false 其中一个为null则返回false
System.out.println(Arrays.equals(a,b)); // false 通过循环比较数组中的元素
// 对数组a 进行升序排序
int [] a = {1, 9, 5, 7,3};
Arrays.sort(a);
System.out.println(Arrays.toString(a)); // [1, 3, 5, 7, 9]
// 通过二分查找元素的下标
System.out.println(Arrays.binarySearch(a,9)); // 5
// Arrays.toString()方法内部实现方式:使用for循环遍历的数组元素,然后通过StringBuilder的append()方法进行追加[元素1,元素2,...]