天天看點

Java基礎之集合架構--Arrays工具類(專門操作數組的工具類)

package newFeatures8;

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

public class ArraysDemo {

	public static void main(String[] args) {
		//arrays_demo();
		arrays_asList_demo();
	}
	/**
	 * 用于操作數組的工具類,裡面都是靜态方法
	 */
	public static void arrays_demo(){
		int[] arr={1,3,5,7};
		System.out.println(arr);//[[email protected]  在堆記憶體中隻有一個對象
		//那麼如何像集合那樣,直接就能列印出數組裡的元素呢?可以使用Arrays.toString(arr);
		System.out.println(Arrays.toString(arr));//[1, 3, 5, 7]
	}
	  //toString(int[] a)的源代碼實作
	 /*public static String toString(int[] a) {
	        if (a == null)
	            return "null";
	        int iMax = a.length - 1;
	        if (iMax == -1)
	            return "[]";

	        StringBuilder b = new StringBuilder();
	        b.append('[');
	        for (int i = 0; ; i++) {
	            b.append(a[i]);
	            if (i == iMax)
	                return b.append(']').toString();
	            b.append(", ");
	        }
	    }*/
	
	/**
	 * @description1 
	 * 接下來說到一個Arrays中的一個很常用的方法:</br>
	 * public static <T> List<T> asList(T... a)</br>
	 * 傳回一個受指定數組支援的固定大小的清單。(對傳回清單的更改會“直接寫”到數組。)
	 * 此方法同 Collection.toArray() 一起,充當了基于數組的 API 與基于 collection 的 API 之間的橋梁。
	 * 傳回的清單是可序列化的,并且實作了 RandomAccess。 
	 * 此方法還提供了一個建立固定長度的清單的便捷方法,該清單被初始化為包含多個元素: 
       List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
       @description2
       	把數組變成集合有什麼好處?可以使用集合的思想和方法來操作數組中的元素
        for example:判斷數組中是否包含某個元素
	 */
	public static void arrays_asList_demo(){
		
		String[] strArr={"qq","ww","ee","rr","tt","yy"};
		List<String> strList=Arrays.asList(strArr);//傳回一個受指定數組支援的固定大小的清單
		System.out.println(strList);//[qq, ww, ee, rr, tt, yy]
		/*
		 * 注意将數組變成集合,不可以使用集合中的增删方法,否則會抛出異常
		 * 原因是數組的長度是固定的 
		 */
		//strList.add("dd");//會抛出 java.lang.UnsupportedOperationException
		
		/*
		 * 注意:如果數組中的元素都是對象,那麼變成集合時,數組中的元素直接轉為集合中的元素
		 * 如果數組中的元素是基本資料類型,那麼會将該數組對象作為集合中的元素存在
		 */
		int[] arr={1,3,5,7};
		List<int[]> intList=Arrays.asList(arr);
		System.out.println("改進前:"+intList);//改進前:[[[email protected]]
		
		//改進
		Integer[] integers={1,3,5,7};//自動裝箱
		List<Integer> integersList=Arrays.asList(integers);
		System.out.println("改進後:"+integersList);//改進後:[1, 3, 5, 7]
		
	}
	

}