数组的三种声明方式、多维数组的遍历、Arrays类的常用方法总结

一.数组的三种声明方式

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.csdn.net/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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值