一.数组的三种声明方式
public static void main(String[] args) {
//第一种
int[] a=new int[3];
a[0]=1;
a[1]=2;
//第二种
int[] b={1,2,3};
//第三种
int[] c=new int[]{1,2,4};
int [][] a=new int[2][]{{1,2},{3,4,5}};//这种赋值方法是错误的
int [2][] a=new int[][]{{1,2},{3,4,5}};//这种赋值方法是错误的
int [2][] a=new int[2][]{{1,2},{3,4,5}};//这种赋值方法是错误的
//这种是可以的
int [][] b=new int[2][];
b[0]=new int[3];
b[1]=new int[4];
score2=new int[][]{{1,2,3},{3,4,5,6},{16,7}};//静态初始化
}
二.多维数组的遍历
score2=new int[][]{{1,2,3},{3,4,5,6},{16,7}};//静态初始化
for (int i = 0; i < score2.length; i++) {
for (int j = 0; j < score2[i].length; j++) {
System.out.print(score2[i][j]+" ");
}
System.out.println();
}
三.Arrays类的常用方法
1.填充数组:fill
int[] a=new int[3];
Arrays.fill(a,2);
for (int i = 0; i <a.length ; i++) {
System.out.print(a[i]+" ");
}
结果:2 2 2
分析:给所有值赋值2
int[] a=new int[5];
Arrays.fill(a,1,3,8);
for (int i = 0; i <a.length ; i++) {
System.out.print(a[i]+" ");
}
结果是:0 8 8 0 0
分析:给第1位(0开始)到第3位(不包括)赋值8
2.数组元素排序:sort
int[] a=new int[]{3,2,5,4,1};
Arrays.sort(a);
for (int i = 0; i <a.length ; i++) {
System.out.print(a[i]+" ");
}
结果是:1 2 3 4 5
分析:给所有数按升序排序
int[] a=new int[]{3,2,5,4,1};
Arrays.sort(a,1,4);
for (int i = 0; i <a.length ; i++) {
System.out.print(a[i]+" ");
}
结果是:3 2 4 5 1
分析:给第1位(0开始)到第4位(不包括)排序
3.比较数组元素是否相等:equals
int[] a=new int[]{3,2,5,4,1};
int[] b=new int[]{3,2,5,4,1};
System.out.println(Arrays.equals(a,b));
结果是:true
int[] a=new int[]{3,2,5,4,1};
int[] b=new int[]{3,2,5,4,1};
System.out.println(Arrays.equals(a,b));
结果是:false
如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是否相等。
4.二分查找法找指定元素的索引值(下标):binarySearch
int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 20));
结果是:1
分析:能找到该元素,返回下标为1(0开始)
int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 35));
结果是:-4
分析:找不到元素,返回-x,从-1开始数,如题,返回-4
int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 0,3,30));
结果是:2
分析:从0到3位(不包括)找30,找到了,在第2位,返回2
int []arr = {10,20,30,40,50};
int []arr1 = Arrays.copyOf(arr, 3);
output(arr1);
结果:10 20 30
分析:截取arr数组的3个元素赋值给姓数组arr1
int []arr = {10,20,30,40,50};
int []arr1 = Arrays.copyOfRange(arr,1,3);
output(arr1);
结果:20 30
分析:从第1位(0开始)截取到第3位(不包括)
[1]https://blog.youkuaiyun.com/liu_yanzhao/article/details/70847050
[2]http://www.runoob.com/java/java-array.html
[3]http://baijiahao.baidu.com/s?id=1601084106055683243&wfr=spider&for=pc