Java Array和Arrays


一:Array與Arrays的區別

1.數組類Array

   Java最基本的一個存儲結構

     提供了動態創建和訪問 Java 數組的方法。其中的元素的類型必須相同。

    效率高,但容量固定且無法動態改變。

    它無法判斷其中實際存有多少元素,length只是告訴我們array的容量。

2. Arrays工具類

   Arrays 類是 Java 中提供的一個工具類,在 java.util 包中。該類中包含了一

   些方法用來直接操作數組,比如可直接實現數組的排序、搜索等。此類還包含

  一個允許將數組作爲列表來查看的靜態工廠。

二:Arrays常用方法

     1、sort()

        默認由小到大排序,不只對於數值型的可以排序,對於字符串等也都可以進行排序
      2
、binarySearch()

        對已排序(從小到大排序的)的數組進行二元搜索,如果找到指定的值就返回其所在的索引位置,否則返回負值

      3、fill()

        將數組的元素全部設定爲指定的值
      4
、equals()

        比較兩個數組元素中的元素值是否全部相等,如果是返回true,否則返回false,適用於一維數組,多維數組用deepEquals()用法同equals;
       5、deepEquals()

          對多維數組進行比較其內容是否一致,不能用於一維數組,會編譯不過滴~
      6
、toString(int[] a)
          返回指定數組內容的字符串表示形式。
      7、copyOf(int[] original, intnewLength)
          複製指定的數組,截取或用 0 填充(如有必要),以使副本具有指定的長度。
      8、copyOfRange(int[] original, intfrom, int to)
          將指定數組的指定範圍複製到一個新數組。  
      9、asList(array)
                 利用Arrays.asList(array)將返回一個List,然而這個返回的List並不支持add和

          remove的操作。返回的List進行添加或刪除時將會報

         java.lang.UnsupportedOperationException 異常。
       
原因:在Arrays.asList中,該方法接受一個變長參數,一般可看做數組參數,但是因爲基本數據類型,

          如int[] 本身就是一個類型,所以data變量作爲參數傳遞時,編譯器認爲只傳了一個變量,這個變量的

        類型是int數組,所以size爲1。        
                因爲是arrays.aslist中,看代碼可以看到這裏返回的ArrayList不是原來的傳統意義上的java.util.arraylist了

     ,而是自己工具類的一個靜態私有內部類,並沒有提供add方法,要自己實現,所以這裏是出錯了,因此,

      除非確信array.aslist後長度不會增加,否則謹慎使用:List abc=Arrays.asList("a","b","c"),

      因爲這樣的長度是無法再add的了。

 



    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章