Arrays 类 常见用法详解

在数组的学习中,我们看到数组只有一个长度可提供引用,就是数组名.length获取数组的长度,那么有没有的类和方法可提供数组操作呢?

Java中提供Arrays 类作为对数组的操作,Arrays 类存在于util工具类里,Arrays 类里静态方法,可以直接引用。

 

序号 方法名 方法说明 语法格式 示例
1 ToString 返回指定数组的内容的字符串表示形式 Arrays.toString(array) Arrays.toString(nums),返回数组
2 Fill 将指定的字节值分配给指定字节数组的每个元素 Arrays.fill(array, val) Arrays.fill(nums,3),把3赋值给nums数组中的每个元素
  Fill 将指定的字节值分配给指定字节数组的指定范围的每个元素。 Arrays.fill(array, fromIndex, toIndex, val)

Arrays.fill(nums,1,3,10),把10赋值给数组下标从1开始,个数为3个的元素,

即赋值给数组元素下标为0,1,2

3 equals 判断2个数组是否相等,相等返回true,否则为false Arrays.equal(array1, array2) Arrays.equals(nums1, nums2),判断nums1和nums2是否相等
4 copyof 复制指定的数组,用零截取或填充(如有必要),以便复制具有指定的长度 Arrays.copyof(array1, newLength) Arrays.copyof(nums1,3),把数组的前3个元素复制到新数组
5 copyfoRange 将指定数组的指定范围复制到新数组中。 Arrays.copyofRange(array, from, to)

Arrays.copyofRange(nums1,3,5),把数组从下标3开始到下标4的元素复制到新数组,

下标5为结束位置。

6 binarySearch 使用二叉搜索算法搜索指定数组 Arrays.binarySearch(array, key) Arrays.binarySearch(nums,3),搜索nums数组中元素为3,返回下标值
7 sort 按照数字顺序排列指定的数组。 Arrays.sort(array) Arrays.sort(nums),按照数字顺序排列
  sort 按升序排列数组的指定范围 Arrays.sort(array, from, to) Arrays.sort(nums,1,3),对数组nums中的1-3元素按照升序排列
8 parallelSort 按照数字顺序排列指定的数组。 Arrays.parallelSort(array) Arrays.parallelSort(nums),按照数字顺序排列
    按升序排列数组的指定范围 Arrays.parallelSort(array, from, to) Arrays.parallelSort(nums,1,3),对数组nums中的1-3元素按照升序排列
9 hashCode 根据指定数组的内容返回哈希码 Arrays.hashCode(array) Arrays.hashCode(nums),返回nums的哈希码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

应用

1.ToString方法

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] num = {1, 3, 2, 88, 50};
        System.out.println(Arrays.toString(num));
    }

}

数组我们一般通过for-each打印输出,通过toString方法可以更快速,运行结果:

Arrays 类 常见用法详解

 

 

2.Fill方法

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums = {1, 3, 2, 88, 50};
        Arrays.fill(nums, 6);
        System.out.println(Arrays.toString(nums));
    }

}

把6赋值给nums里的所有元素,运行结果:

Arrays 类 常见用法详解

指定只赋值给数组中下标为0,1的元素,如下:

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums = {1, 3, 2, 88, 50};
        Arrays.fill(nums, 0,2,6);
        System.out.println(Arrays.toString(nums));
    }

}

运行结果:

Arrays 类 常见用法详解

 

 

3.equals方法

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums1 = {1, 3, 2, 88, 50};
        int[] nums2 = {1, 3, 2, 66, 50};
        System.out.println(Arrays.equals(nums1,nums2));
    }

}

运行结果:

Arrays 类 常见用法详解

 

 

4.copyof

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums1 = {1, 3, 2, 88, 50};
        int[] nums2 = Arrays.copyOf(nums1, 3);
        System.out.println(Arrays.toString(nums2));
    }

}

把数组nums1的前3个元素复制新的数组num2中,运行结果:

Arrays 类 常见用法详解

 

 

5.copyofRange

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums1 = {1, 3, 2, 88, 50};
        int[] nums2 = Arrays.copyOfRange(nums1, 1,3);
        System.out.println(Arrays.toString(nums2));
    }

}

把数组num1的下标1开始的元素到下标为2的元素复制到新数组nums2,这里的3是结束位置,运行结果:

Arrays 类 常见用法详解

 

 

6.binarySearch方法

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums = {1, 3, 2, 88, 50};
        System.out.println(Arrays.binarySearch(nums,88));
    }

}

查找数组中元素为88的索引位置,运行结果:

 Arrays 类 常见用法详解

 

 如果找不到索引位置,返回-1或者”-“(插入点)

 

7.sort方法

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums = {1, 3, 2, 88, 50};
        Arrays.sort(nums);
        System.out.println(Arrays.toString(nums));
    }

}

对整个数组进行排序,运行结果

Arrays 类 常见用法详解

 

 

指定数组范围进行排序,

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums = {1, 3, 2, 88, 50, 19, 10};
        Arrays.sort(nums,3,6);
        System.out.println(Arrays.toString(nums));
    }

}

对nums数组下标3到5的元素进行排序,Arrays.sort(nums,3,6)中的6为结束位置。

运行结果:

Arrays 类 常见用法详解

 

 

8.parallelSort方法

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums = {1, 3, 2, 88, 50, 19, 10};
        Arrays.parallelSort(nums);
        System.out.println(Arrays.toString(nums));
    }

}

运行结果:

Arrays 类 常见用法详解

 

 

9.hashCode方法

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums = {1, 3, 2, 88, 50, 19, 10};
        System.out.println(Arrays.hashCode(nums));
    }

}

运行结果

Arrays 类 常见用法详解

 

 

如果两个数组相等,他们的哈希码也一样,比如

import java.util.Arrays;

public class Array03 {
    public static void main(String[] args) {
        int[] nums1 = {1, 3, 2, 88, 50, 19, 10};
        int[] nums2 = {1, 3, 2, 88, 50, 19, 10};
        System.out.println(Arrays.hashCode(nums1));
        System.out.println(Arrays.hashCode(nums2));
    }

}

运行结果

Arrays 类 常见用法详解

 

 

 

 

 

 

上一篇:88. 合并两个有序数组


下一篇:leetcode 88 合并两个有序数组