如何使用Arrays工具類操作數組

介紹

我們要先知道Arrays 是什麼。 java.util.Arrays 類是 JDK 提供的一個工具類主要用來操作數組,比如數組的複製轉換等各種方法,Arrays 的方法都是靜態方法可以通過Arrays.方法名稱直接調用。本文主要分析一些常用的方法。

sort方法

sort方法主要用於排序,有一系列的重載方法不光支持7種數據類型,同時也支持Object和Comparator(比較器)

int

定義一個int數組,具體代碼如下

輸出結果:

[1, 3, 4, 5, 9, 21, 34, 35, 44]

String

如一下代碼:

輸出結果:

[A, B, C, D, F, K, Y]

asList

asList的主要作用就是返回由指定數組支持的ArraryList列表,asList是返回一個ArraryList但是這個ArraryList是Arrays 內部的ArraryList所以我們只能對其進行查看或者修改,但是不能進行添加或者刪除操作。

下面來看個例子:

使用asList轉換成ArraryList後修改是可以運行的。再看下面的例子

新增一個元素會拋出UnsupportedOperationException異常

這是爲什麼呢。看一下源碼。


在上面說到asList是返回一個自己的內部類,然後這個內部類的話並沒有去實現add方法,在調用add方法的時候會調用父類AbstractList裏面的方法,所以說纔會拋出UnsupportedOperationException可以看下面的源碼

1564927190723

那如果要對返回的數組進行操作的話要怎麼獲取一個可以Add的List,非常簡單,看以下例子

引用數據類型和基本數據類型的區別

說到這個可能大多人都不知道。我們來看一個例子。

這個例子非常簡單,就是把兩個數組轉換成List集合。那我們輸出一下。

輸出結果:

String :7
int :1

看到這裏就不禁有疑問了。問什麼我第二個int數組有有五個屬性但是輸出的數量卻是1呢?

先去看一下asList的源碼。注意到asList方法是以下定義:

List asList(T... a)

asList方法接收一個可變參數,並且這個可變參數類型是作爲泛型的參數。那麼在Java中基本數據類型不能作爲泛型的參數,數組是引用數據類型所以數組是可以泛型化,所以使用了int[]作爲參數類型,而不是用int作爲參數類型上面的方法如果補全的話應該是以下。

List<int[]> intList = Arrays.asList(intData);

那這個問題如何解決呢?

將int替換成包裝類型即可

binarySearch

binarySearch用來查找元素。看下方例子

輸出結果:

3

返回所在的下標。

copyOf

看下方例子

將intData的數據複製到int2中參數要指定新數組的長度。

輸出結果:

[1, 2, 3, 4]

toString

在上方使用的例子用也介紹了toString主要就是用來輸出數組。

主要就是這幾個方法常用。歡迎轉發關注。

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