1.增强型for循环
e.g.
int values [] = new int[]{18,62,68,82,65,9};
//常规遍历
for (int i = 0; i < values.length; i++) {
int each = values[i];
System.out.println(each);
}
//增强型for循环遍历
for (int each : values) {
System.out.println(each);
}
注:增强型for循环只能用来取值,却不能用来修改数组里的值
格式
for(循环对象的类型 元素名: 对象名 ){
语句
}
2.复制数组
把一个数组的值,复制到另一个数组中。
System.arraycopy(src, srcPos, dest, destPos, length)
src: 源数组
srcPos: 从源数组复制数据的起始位置
dest: 目标数组
destPos: 复制到目标数组的起始位置
length: 复制的长度
e.g.
int[] a= {1,2,3,4,5};
int[] b=new int[5];
System.arraycopy(a, 0, b, 0, 3);
for(int i:b) {
System.out.println(i);
}
输出结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a81ibMw3-1636632088341)(C:\Users\26890\AppData\Roaming\Typora\typora-user-images\image-20211111135320826.png)]
3.二维数组
二维数组中的每一个元素都是一个一维数组,所以二维数组又叫数组的数组。
格式 e.g.
int b[][] = new int[][]{
{1,2,3},
{4,5,6},
{7,8,9}
};
定义的一般形式
类型说明符 数组名[常量表达式][常量表达式]
e.g.
float a[3][4],b[5][6];//表示一个三行四列和一个五行六列的二维数组
注:二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再接着存放第二行的元素。
二维数组的引用
数组名[下标][下标]
数组元素可以出现在表达式中,也可以被赋值。e.g.
b[1][2]=a[2][3]/2;//表示数组a中第三行第二列的元素值的一半被赋给数组b中第一行第二列的元素。
注:在引用数组时,下标值应在已定义的数组大小的范围内。
二维数组的初始化
①
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12};//常用形式,分组直观
②
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//数据大时,会写成一片。容易遗漏,不易检查。
③
int a[3][4]={{1},{4,5}};//部分赋值,不赋值的默认为0
④
int a[3][4]={{1},{},{9};//同上
⑤
//int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};//两种方法等价
⑥
//int a[3][4]={{1},{},{9};
int a[][4]={{1},{},{9};//两种方法等价
3.Arrays类
Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能。大大提高了开发人员的工作效率。
关键字 | 介绍 |
---|---|
copyOfRange | 数组复制 |
toString() | 转换为字符串 |
sort | 排序 |
binarySearch | 搜索 |
equals | 判断是否相同 |
fill | 填充 |
①数组复制
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
// copyOfRange(int[] original, int from, int to)
// 第一个参数表示源数组
// 第二个参数表示开始位置(取得到)
// 第三个参数表示结束位置(取不到)
int[] b = Arrays.copyOfRange(a, 0, 3);
②转换为字符串
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
String content = Arrays.toString(a);
System.out.println(content);
③排序
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
System.out.println("排序之前 :");
System.out.println(Arrays.toString(a));
Arrays.sort(a);
System.out.println("排序之后:");
System.out.println(Arrays.toString(a));
④搜索
注:在使用binarySearch之前,必须先使用sort进行排序。若数组中有多个数值相同的元素,那么查找结果是不确定的。
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
Arrays.sort(a);
System.out.println(Arrays.toString(a));
//使用binarySearch之前,必须先使用sort进行排序
System.out.println("数字 62出现的位置:"+Arrays.binarySearch(a, 62));
}
⑤判断是否相同
比较两个数组的内容是否相同。相同返回true,不同返回false。
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
int b[] = new int[] { 18, 62, 68, 82, 65, 8 };
System.out.println(Arrays.equals(a, b));
⑥填充
使用同一个值填充数组。
int a[] = new int[10];
Arrays.fill(a, 5);