一: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的了。