Day42 Arrays类讲解

发布时间 2024-01-02 21:53:48作者: 白小帆

Arrays类讲解

  • 数组的工具类java.util.Arrays

  • 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。

  • 查看JDK帮助文档//可以看Jdk网页版api

    也可以网上下载后本地查看(jdk api 1.8_google.CHM)

  • Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而”不用"使用对象来调用(注意:是"不用”而不是"不能")

  • 具有以下常用功能:

    • 给数组赋值:通过fill方法。
    • 对数组排序:通过 sort 方法,按升序。
    • 比较数组:通过equals方法比较数组中元素值是否相等。
    • 查找数组元素:通过binarySearch 方法能对排序好的数组进行二分查找法操作。

1.打印数组元素:Arrays.toString

package com.baixiaofan.array;

import java.util.Arrays;//下面调用工具包后自动填充

public class ArrayDemo06 {
    public static void main(String[] args) {
        int[] a = {1,2,3,4,9090,31231,543,21,3,23};
        System.out.println(a);//[I@1b6d3586
        //打印数组元素Arrays.toString
        System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
        System.out.println("================================");
        printArray(a);
    }
    //除了直接调用Array的工具类      也可以自己手打  调用方法    效果是一样的
    public static void printArray(int[] a){
        for (int i = 0; i < a.length; i++) {
            if (i==0){
                System.out.print("[");
            }
            if (i== a.length-1){
                System.out.print(a[i]+"]");
            }else {
                System.out.print(a[i]+", ");
            }
        }
    }
}
结果是:
[I@1b6d3586
[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
================================
[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
Process finished with exit code 0

2.对数组进行排序:Arrays.sort

对数组进行填充:Arrays.fill

package com.baixiaofan.array;

import java.util.Arrays;

public class ArrayDemo07 {public static void main(String[] args) {
    int[] a = {1,2,3,4,9090,31231,543,21,3,23};
    System.out.println(a);//[I@1b6d3586
    //打印数组元素Arrays.toString
  System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
  System.out.println("================================");

    Arrays.sort(a);//对数组进行排序(升序)
    System.out.println(Arrays.toString(a));
    System.out.println("================================");


    //填充数组
    //Arrays.fill(a,0);//输入Arrays.fill(a,后直接按0  会自动填充val:
    //System.out.println(Arrays.toString(a));//结果是[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    System.out.println("================================");

    Arrays.fill(a,2,4,0);//从第2个到第4个元素填充为0(2跟4之间   即包括2跟3)
    System.out.println(Arrays.toString(a));//[1, 2, 0, 0, 4, 21, 23, 543, 9090, 31231]
    }
}
结果是:
[I@1b6d3586
[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
================================
[1, 2, 3, 3, 4, 21, 23, 543, 9090, 31231]
================================
================================
[1, 2, 0, 0, 4, 21, 23, 543, 9090, 31231]

3.比较数组:Arrays.equals

package com.baixiaofan.array;

import java.util.Arrays;

public class ArrayDemo08 {
    public static void main(String[] args) {
        int[] a = {1,2,3,4,5};
        int[] b = new int[5];//[5]代表数组长度   下标即为4
        b[0] = 1;
        b[1] = 2;
        b[2] = 3;
        b[3] = 4;
        b[4] = 5;
        int[] c = {1,5,4,2,3};
        if (Arrays.equals(a,b)){
            System.out.println("a数组和b数组相等");
        }else {
            System.out.println("a数组和b数组不相等");
        }
        if (Arrays.equals(a,c)){
            System.out.println("a数组和c数组相等");
        }else {
            System.out.println("a数组和c数组不相等");
        }
    }
}
结果是:
a数组和b数组相等
a数组和c数组不相等

4.查找数组元素:binarySearch二分查找法操作

点击查看CSDN[Lynn_lurk]的博客进行参考