Java常用類(四)之數組工具類Arrays


前言

  數組的工具類java.util.Arrays
  由於數組對象本身並沒有什么方法可以供我們調用,但API中提供了一個工具類Arrays供我們使用,從而可以對數據對象進行一些基本的操作。

一、Arrays類概述

1.1、Arrays類的引入

  該是java.util包中的類,在我們的代碼中想使用這個類的話,就必須使用import進行導入。

  在當前類A中,只有java.lang包下的類,以及和當前類A在同一個包下的類,不需要import引入之外,其他所有的包下的類在被使用之前都要import引入。

1.2、簡介

  

二、Arrays類中方法調用

  Arrays類中的方法都是static修飾的靜態方法,在使用的時候可以直接使用類名進行調用,而"不用"使用對象來調用(注意:是"不用" 而不是 "不能")

2.1、toString()方法

  把數組轉換位字符串形式並返回

  

        int[] a = {1,3,5,7,9};
        System.out.println(Arrays.toString(a));   

  結果:[1, 3, 5, 7, 9]

2.2、binarySearch()方法 

  在數組中查找指定元素並返回其下標

    注意:使用二分搜索法來搜索指定的數組,以獲得指定的值。必須在進行此調用之前對數組進行排序(通過sort方法等)。如果沒有對數組進行排序,則結果是不確定的。

              如果數組包含多個帶有指定值的元素,則無法保證找到的是哪一個。

  

        int[] a = {1,3,5,7,9};
        int bs = Arrays.binarySearch(a, 7);
        System.out.println(bs);  

     結果:3

2.3、sort()方法

  把數據中的元素進行排序

  

  1)sort(int[] a)    對指定的 int 型數組按數字升序進行排序 

        int[] a = {3,5,1,9,7};
        System.out.println("before"+Arrays.toString(a));
        Arrays.sort(a);
        System.out.println("after"+Arrays.toString(a));    

          結果:before[3, 5, 1, 9, 7]
                      after[1, 3, 5, 7, 9]

  2)sort(byte[] a, int fromIndex, int toIndex)     對指定 byte 型數組的指定范圍按數字升序進行排序。

    參數概述: 

            a - 要排序的數組

      fromIndex - 要排序的第一個元素的索引(包括)

      toIndex - 要排序的最后一個元素的索引(不包括)

  3)sort(T[] a, Comparator<? super T> c)       根據指定比較器產生的順序對指定對象數組進行排序

2.4、copyOf()方法

  復制或者截取指定數組並返回

  

        int[] a = {1,3,5,7,9};
        int[] copy = Arrays.copyOf(a, 8);
        System.out.println(Arrays.toString(copy));  

         結果:[1, 3, 5, 7, 9, 0, 0, 0]

2.5、copyOfRange()方法

  將數組中指定范圍復制新數組並返回

    copyOfRange(int[] original, int from, int to)       將指定數組的指定范圍復制到一個新數組。

      參數:original - 將要從其復制一個范圍的數組

      from - 要復制的范圍的初始索引(包括)

      to - 要復制的范圍的最后索引(不包括)。(此索引可以位於數組范圍之外)。 

  

2.6、equals()方法

   比較倆個數組是否相等

  

        int[] a = {1,3,5,7,9};
        int[] b = {1,3,5,7,9};
        boolean eq = Arrays.equals(a, b);
        System.out.println(eq);
        System.out.println(a==b);

        結果:true

                    false

  注意:==比較的是引用所指向對象的內存地址
                Arrays.equals方法比較是倆個數組中的內容

2.7、fill()方法

  用指定值去填充數組對象

  

  1)fill(int[] a, int val)    將指定的 int 值分配給指定 int 型數組的每個元素

        int[] a = {1,3,5,7,9};
        Arrays.fill(a, 666);
        System.out.println(Arrays.toString(a));

  結果:[666, 666, 666, 666, 666]

  2)fill(int[] a, int fromIndex, int toIndex, int val)     將指定的 int 值分配給指定 int 型數組指定范圍中的每個元素

    參數:    a - 要填充的數組

        fromIndex - 要使用指定值填充的第一個元素的索引(包括)

        toIndex - 要使用指定值填充的最后一個元素的索引(不包括)

        val - 要存儲在數組所有元素中的值 

2.8、asList()方法

  可以把數組轉換為List集合

  

        int[] a = {3,5,1,9,7};
        List<int[]> list = Arrays.asList(a);

2.9、hashCode()方法

  基於指定數組的內容返回哈希碼

  

        int[] a = {3,5,1,9,7};
        System.out.println(Arrays.hashCode(a));  

       結果:31549916

 

 

喜歡就點個“推薦”哦!


免責聲明!

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



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