java集合框架之集合工具類Arrays類

1.Arrays類:

 在Collection接口中有一個方法叫toArray把集合轉換爲Object數組.
 把集合轉換爲數組:  Object[] arr = 集合對象.toArray();
 數組也可以轉換爲集合(List集合):
 public static <T> List<T> asList(T... a) 等價於public static <T> List<T> asList(T[] a).
import java.util.Arrays;
import java.util.List;

public class SetDemo8 {
	public static void main(String[] args) {
		List<String> list = Arrays.asList("a","b","c");
		System.out.println(list);//[a, b, c]
		
		List<Integer> list2 = Arrays.asList(1,2,3,4);//自動裝箱
		System.out.println(list2);//[1, 2, 3, 4]
		
		int[] arr ={1,2,3,4};	
		List<int[]> list3 = Arrays.asList(arr);//直接把數組當做對象
		System.out.println(list3);//[[I@3a5476a7]
	}
}

 通過Arrays.asList方法得到的List對象的長度是固定的,不能增,也不能減.

import java.util.Arrays;
import java.util.List;

public class SetDemo8 {
	public static void main(String[] args) {
		List<String> list = Arrays.asList("a","b","c");
		System.out.println(list);//[a, b, c]
		//list.remove(0);//報錯 java.lang.UnsupportedOperationException
		//list.add("d");//報錯 java.lang.UnsupportedOperationException
	}
}

 爲什麼: asList方法返回的ArrayList對象,不是java.util.ArrayList而是Arrays類中的內部類對象.看源碼,可以得知返回的ArrayList對象是Arrays類中的內部類對象.


2.其他方法

int binarySearch(type[] arr,type key) 使用二分法查找數組裏某元素並返回其索引,若找不到返回負數.


void sort(type[] arr) 使用調優後的快速法對指定數組排序。


String toString(type[] arr) 返回指定數組內容的字符串表示形式。


public static type[] copyOf(type[] original, int newLength) 複製指定的數組,截取或用 0 填充(如有必要),以使副本具有指定的長度

 

class ArraysDemo   
{  
    public static void main(String[] args)   
    {  
        int[] arr = {1,5,6,89,54,3,456,3234};  
          
        //數組打印  
        System.out.println(java.util.Arrays.toString(arr));  
          
        //數組排序  
        java.util.Arrays.sort(arr);  
          
        //排序後打印  
        System.out.println(java.util.Arrays.toString(arr));  
          
        //二分法查找指定元素在數組中的索引(注意:該數組必須是有序的)  
        int index=java.util.Arrays.binarySearch(arr,456);  
        System.out.println(index);  
          
        //數組的複製  
        int[] arr2 = java.util.Arrays.copyOf(arr,4);  
        //複製後打印該新的數組  
        System.out.println(java.util.Arrays.toString(arr2));  
    }  
} 

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