Arrays工具類


=============Arrays工具類=================
Arrays:用於操作數組工具類,里面定義了常見操作數組的靜態方法。
常見的有:
二分查找。排序。將數組變成字符串。

int[] arr = { 4, 1, 5, 8, 2, 9 };
System.out.println(Arrays.toString(arr));// 輸出 原始數組 [4, 1, 5, 8, 2, 9]

// 對arr進行排序,默認是從小到大。
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));// 輸出 排序[1, 2, 4, 5, 8, 9]

int index = Arrays.binarySearch(arr, 7);//二分查找(折半查找)
System.out.println("index=" + index);//如果沒有找到,返回 插入點index=-5,負號說明沒有找到
// -5說明 要找的7本應該在   5-1=4的下標, 即現在8的位置

Arrays.fill(arr, 88);//用88來填充整個數組
System.out.println(Arrays.toString(arr));//[88, 88, 88, 88, 88, 88]

=================asList:將數組變成集合=====================
    其實就是數組的操作方法較少,可以將數組轉成集合后,通過集合的方法來操作數組的元素。
    這樣比較方便,但是注意:數組變成集合后,不可以使用增刪等改變數組長度的方法。
    如果改變了數組的長度。使用增刪等方法會發生UnsupportedOperationException異常。
 
如果數組中存儲的是基本數據類型的元素,那么會將該數組作為集合的元素存在。
int[] arr = { 3, 1, 5 };
List<int[]> list = Arrays.asList(arr);
System.out.println(list);// 輸出 : [[I@7919298d]

如果數組中存儲的是引用數據類型的元素,那么變成集合時,這些元素會作為集合的元素存在。
Integer[] arr = { 3, 1, 5 };
List<Integer> list = Arrays.asList(arr);
System.out.println(list);// 輸出 : [3, 1, 5]
list.add(44);// throw "java.lang.UnsupportedOperationException"

============集合轉換成數組=============
有時候 需要讓集合圍成數組,因為有時需要限定對集合中的元素操作,不需要對該元素進行增刪。
這里我們 可以 使用的是Collection接口中的toArray方法。
在使用toArray方法時,可以傳入一個指定類型的數組。
那么toArray會返回該類型的數組並存儲了集合中的元素。
給toArray方法傳遞的數組長度該怎么定義呢?
如果傳入的數組長度小於集合的長度,那么該toArray方法內部會建立一個新的該類型的數組,並長度和集合一致,來存儲集合的元素。
如果傳入的數組長度大於集合的長度,那么就使用傳入的數組存儲集合的元素,沒有存儲數據的位置為null。
所以傳入數組時,該數組長度最好定義成集合的的長度。這就是剛剛好的數組。
class  ToArrayDemo
{
    public static void main(String[] args)  
    {
 
        ArrayList<String> al = new ArrayList<String>();
        al.add("abc1");
        al.add("abc2");
        al.add("abc3");
 
        String[] arr = al.toArray(new String[al.size()]);
        System.out.println(Arrays.toString(arr));
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM