v数组是存放多个单一元素的容器。数组有长度,如下图的数组长度为10,则可以放下10个元素,每个元素有自己的索引。
1.声明数组
类型[] 或 []类型 数组变量名
如int[] ints; 或 []String strs;
2.初始化数组
方式1:显示初始化(必须结合声明数组一起使用)
类型[] 或 []类型 数组变量名 = {元素1,...,元素n};
方式2:系统默认初始化
类型[] 或 []类型 数组变量名 = new 类型[长度] 或 new [长度]类型
数组变量名 = new 类型[长度] 或 new [长度]类型
int[] ints1 = { 1, 2, 3 }; // 方式1
int[] ints2 = new int[3]; // 方式2
int[] ints3;
ints3 = new int[3] // 方式2
int[] ints4;
ints4 = { 1, 2, 3 } // 错误,显示初始化必须结合数组声明一起使用
3.获取数组元素(获取值或设置值)
数组变量名[下标]
数组下标从0开始,最大下标是数组长度-1;超出小标范围的访问报数组越界异常。
获取到了数组元素后,其实就获取到的值
你还可以将它重定义值
int[] ints = { 1, 2, 3 }; // 声明并初始化数组
System.out.println(ints[0]); // 获取数组第一个元素,打印1
ints[0] = 0; // 修改数组第一个元素的值
System.out.println(ints[0]); // 获取数组第一个元素,打印0
4.数组长度属性length
数组变量名.length
int[] ints = { 1, 2, 3 }; // 声明并初始化数组
int max = ints.length - 1; // 获取数组的最大下标
ints[max] = 4; // 修改数组最后一个元素的值,修改成4
// 最大下标是2,这里报异常java.lang.ArrayIndexOutOfBoundsException
ints[3] = 1;
注
1) 不能在声明时指定数组长度,int[5] ints是错误的,数组长度在初始化时指定。
5.多维数组
可以看做是以数组为元素的数组。以二维数组举例如下:
int[][] ints1 = {{1},{1,2,3},{3,4}}; // 方式1
// ints1[0]是一个长度为1的一维数组;ints1[1]是一个长度为3的一维数组...
int[][] ints2 = new int[3][5]; // 方式2
// ints2的每一个元素,都是一个长度为5的一维数组
int[][] ints3 = new int[3][]; // 方式2,从低维到高维的顺序初始化
ints3[0] = new int[1];
ints3[1] = new int[3];
ints3[2] = new int[2];
// ints3[0]是一个长度为1的一维数组,ints3[1]是一个长度为3的一维数组...
注
1) 多维数组的声明和初始化,应该按高维到低维的顺序进行
int[][] ints = new int[][3]; // 错误
6.数组的拷贝
拷贝方法:System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
7.遍历数组
int[] src = { 1, 2, 3 };
int[] dest = new int[3];
System.arraycopy(src, 0, dest, 0, src.length);
for (int i = 0; i < dest.length; i++) {
System.out.println("当前元素:" + dest[i] + ",下标是:" + i);
}
for (int m:dest) {
System.out.println("当前元素:" + m + ",无法直接获得下标");
}
8.Arrays数组工具类
比较数组是否相等:Arrays.equals (Arrays.deepEquals用于多维数组的比较)
填充数组:Arrays.fill
数组排序:Arrays.sort
已排序数组中查找:Arrays.binarySearch()
字符串化:Arrays.toString
转化为List:Arrays.asList
|
|