1. 程式人生 > >Java Arrays,Collections中addAll使用方法和初始化容器方法

Java Arrays,Collections中addAll使用方法和初始化容器方法

package stl;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

public class Test1 {

	public static void main(String[] args)
	{
		List list = Arrays.asList(1,2,4,5,6,3,8.3,-0.32343);
		System.out.println(list.toString());
		
		// 通過Arrays。asList得到的List,無法對其進行增刪元素。這是因為,
		// 該函式返回的List,其底層實現是陣列,而陣列的長度是固定的
		//list.add(88); 
	    //list.remove(list.size() - 1);
		
		List<Integer> iLst = new ArrayList<Integer>(list);
		System.out.println(iLst.size());
		iLst.remove(iLst.size() - 1);
		iLst.remove(iLst.size() - 1);
		
		Integer[] iArr = iLst.toArray(new Integer[0]);
		
		List<Integer> iLst2 = new ArrayList<Integer>(Arrays.asList(7,4,5,0,88));
		
		Collection<Integer> cl1 = new ArrayList<Integer>(iLst2);
		
		Collection<Integer> cl2 = new LinkedList<Integer>();
		cl2.addAll(iLst2);
		
		Collection<Integer> cl3 = new ArrayList<Integer>();
		Collections.addAll(cl3, 1,2, new Integer(3));
		System.out.println(cl3.toString());
		
		
		List<B> listB = Arrays.asList(new B(), new B1(), new B2(), new B3(), new B4(),new B5());
		List<B> listB2 = Arrays.asList(new B2(), new B3());
		List<B> listB3 = new LinkedList<B>();
		Collections.addAll(listB3, new B3(), new B5());
		listB3.addAll(listB);
		Collections.addAll(listB3, listB2.toArray(new B[0]));
		List<B> listB4 = Arrays.<B>asList(listB3.toArray(new B[0]));
		
                //以下幾行是測試 List 和 陣列的toString的輸出值
		System.out.println(listB3.toString());		
		B[] bArr = new B[]{new B(), new B1(), new B2(), new B3(), new B4(), new B5()};
		System.out.println(bArr.toString()); // 陣列的toString函式,仍然是輸出“包名.類名@雜湊值”
		System.out.println(Arrays.toString(bArr)); //輸出陣列內窩,內容依賴於物件的toString
		
		int[] aArr = {2,3,5,7,8};
		System.out.println(aArr.toString());
		System.out.println(Arrays.toString(aArr));
	}
}

class B { }

class B1 extends B{
	@Override
	public String toString() {
		return "B1  ";
	}
}

class B2 extends B{
	public String toString() {
		return "B2  ";
    }
}

class B3 extends B{}

class B4 extends B{
	public String toString() {
		return "B4  ";
	}
}

class B5 extends B{}
</pre><pre name="code" class="java">
使用addAll來增加元素時(無論是Collections,還是Collection自身【包括List、Set、Deque】的),增加幾個元素,modcount的值加幾。