Java中提供了一個專門用于操作數(shù)組的工具類,即Arrays類,位于java.util包中。Arrays類包含各種操作數(shù)組的方法,比如排序和搜索,除此之外,Arrays類還包含一個靜態(tài)工廠,允許將數(shù)組視為列表。Arrays類里的方法都是靜態(tài)方法,我們可以通過Arrays.方法名()直接調用。
Arrays類的常用方法如下:
(1)Arrays.asList()
該方法是將數(shù)組轉化為List集合的方法。
List<String> list = Arrays.asList("a","b","c");
注意:
1)該方法適用于對象型數(shù)據的數(shù)組(String、Integer、…)。
2)該方法不建議使用于基本數(shù)據類型的數(shù)組(byte、short、int、long、float、double、boolean)。
3)該方法將數(shù)組與List列表鏈接起來,當更新其中一個的時候,另一個自動更新。
4)不支持add()、remove()、clear()等方法。
(2)Arrays.fill()
在Java API中的public static void fill(Object[] a,int fromIndex,int toIndex,Object val)將指定的Object引用分配給指定Object數(shù)組指定范圍中的每個元素,填充的范圍從索引fromIndex(包括)一直到索引toIndex(不包括),如果fromIndex==toIndex,則填充范圍為空。
參數(shù) | 說明 |
a | 要填充的數(shù)組 |
fromIndex | 要使用指定值填充的第一個元素的索引(包括) |
toIndex | 要使用指定值填充的最后一個元素的索引(不包括) |
val | 要存儲在數(shù)組的所有元素中的值 |
(3)Arrays.copyOf()和Arrays.copyOfRange()
1)Arrays.copyOf()
該方法傳回的數(shù)組是新的數(shù)組對象,改變傳回數(shù)組中的元素值,不會影響原來的數(shù)組,其中第一個變量表示原來的數(shù)組對象,第二個變量表示新的數(shù)組的長度,如果新的數(shù)組的長度超過原來的數(shù)組的長度,保留數(shù)組元素的默認基本類型的值。
2)Arrays.copyOfRange()
該方法用于對一個已有的數(shù)組進行截取復制,復制出一個左閉右開區(qū)間的數(shù)組。將一個原始的數(shù)組original,從下標from開始復制,復制到上標to,生成一個新的數(shù)組返回。
注意:這里包括from,不包括to,即[from,to)。
(4)Arrays.equals()
該方法用于比較判斷兩個數(shù)組元素是否相等,例如:
import java.util.*; public class Main { public static void main(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: false Arrays.equals(arr1,arr2): true
(5)Arrays.sort()
該方法是Arrays類的靜態(tài)方法,用于對數(shù)組進行排序,時間復雜度O(n*logn),方法返回值為void。排序后,數(shù)組中存放的是排序后的結果。
(6)Arrays.binarySearch()
通過二分法在已經排好序的數(shù)組中查找指定的元素,并返回該元素的下標。如果該元素存在于數(shù)組中,則返回該元素在數(shù)組中的下標;如果該元素不存在于數(shù)組中,則返回-(插入點+1),這里的插入點指的是,如果該元素存在于數(shù)組中,該元素在數(shù)組中的下標。
C語言網提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程