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

介紹

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

sort方法

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

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

int

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

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

輸出結果:

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

String

如一下代碼:

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

輸出結果:

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

asList

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

下面來看個例子:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

輸出結果:

String :7

int :1

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

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

List asList(T... a)

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

List intList = Arrays.asList(intData);

那這個問題如何解決呢?

將int替換成包裝類型即可

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

binarySearch

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

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

輸出結果:

3

返回所在的下標。

copyOf

看下方例子

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

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

輸出結果:

[1, 2, 3, 4]

toString

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

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


分享到:


相關文章: