Java中提供了一個專門用於操作數組的工具類,即Arrays類,位於java.util套件中。 Arrays類別包含各種操作數組的方法,例如排序和搜索,除此之外,Arrays類別還包含一個靜態工廠,允許將數組視為列表。 Arrays類別裡的方法都是靜態方法,我們可以透過Arrays.方法名()直接呼叫。
Arrays類別的常用方法如下:
此方法是將陣列轉換為List集合的方法。
List<String>list=Arrays.asList(a,b,c);
注意:
1)此方法適用於物件型資料的陣列(String、Integer、…)。
2)此方法不建議使用於基本資料型別的陣列(byte、short、int、long、float、double、boolean)。
3)該方法將陣列與List列表連結起來,當更新其中一個的時候,另一個自動更新。
4)不支援add()、remove()、clear()等方法。
在Java API中的public static void fill(Object[] a,int fromIndex,int toIndex,Object val)將指定的Object引用指派給指定Object陣列指定範圍中的每個元素,填入的範圍從索引fromIndex(包括)一直到索引toIndex(不包括),如果fromIndex==toIndex,則填充範圍為空。
1)Arrays.copyOf()
此方法傳回的數組是新的數組對象,改變傳回數組中的元素值,不會影響原來的數組,其中第一個變數表示原來的數組對象,第二個變數表示新的數組的長度,如果新的陣列的長度超過原來的陣列的長度,保留陣列元素的預設基本類型的值。
2)Arrays.copyOfRange()
此方法用於對一個已有的陣列進行截取複製,複製出一個左閉右開區間的陣列。將一個原始的陣列original,從下標from開始複製,複製到上標to,產生一個新的陣列回傳。
注意:這裡包括from,不包括to,即[from,to)。
此方法用於比較判斷兩個陣列元素是否相等,例如:
importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){int[]arr1={9,5,1,33};int[]arr2={9,5,1,33};System.out. println(arr1==arr2:+(arr1==arr2));//比較System.out.println(Arrays.equals(arr1,arr2):+Arrays.equals(arr1,arr2));}}
運行結果如下:
arr1==arr2:falseArrays.equals(arr1,arr2):true
此方法是Arrays類別的靜態方法,用於對陣列進行排序,時間複雜度O(n*logn),方法傳回值為void。排序後,數組中存放的是排序後的結果。
透過二分法在已經排好序的陣列中尋找指定的元素,並傳回該元素的下標。如果該元素存在於數組中,則傳回該元素在數組中的下標;如果該元素不存在於數組中,則返回-(插入點+1),這裡的插入點指的是,如果該元素存在於數組中,該元素在數組中的下標。