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方法可以更快速,運行結果:

 

 

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里的所有元素,運行結果:

指定只賦值給數組中下標為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));
    }

}

運行結果:

 

 

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));
    }

}

運行結果:

 

 

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中,運行結果:

 

 

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是結束位置,運行結果:

 

 

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的索引位置,運行結果:

 

 

 如果找不到索引位置,返回-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));
    }

}

對整個數組進行排序,運行結果

 

 

指定數組范圍進行排序,

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為結束位置。

運行結果:

 

 

 

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));
    }

}

運行結果:

 

 

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));
    }

}

運行結果

 

 

如果兩個數組相等,他們的哈希碼也一樣,比如

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));
    }

}

運行結果

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM