1. 程式人生 > >Collections Collection二者的區別:

Collections Collection二者的區別:

 * 二者的區別:
 * Collections:是一個工具類,他的方法是用於操作Collection類
 * Collection:集合體系的最頂層,包含了集合體系的共性(List:有序、有整數索引、允許重複)
 *                                                                                                 (Set:無序、不允許重複)

package com.myset.optimization;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/*
 * 二者的區別:
 * Collections:是一個工具類,他的方法是用於操作Collection類
 * Collection:集合體系的最頂層,包含了集合體系的共性(List:有序、有整數索引、允許重複)
 * 										       (Set:無序、不允許重複)
 * 
 */
public class CollectionsDemo {

	public static void main(String[] args) {
		method1();//二分查詢
		method2();//複製
		//static <T> void fill(List list, T obj) 使用指定元素替換指定列表中的所有元素。 
	}

	private static void method2() {
		//static <T> void copy(List dest, List src) 將所有元素從一個列表覆蓋到另一個列表。 
		//前提條件是目標列表的長度必須大於等於源列表的長度
		List<String> src = new ArrayList<String>();
		src.add("hello");
		src.add("Android");
		src.add("java");
		List<String> dest = new ArrayList<String>();
		/*Collections.copy(dest, src);
		//OUT:Exception in thread "main" java.lang.IndexOutOfBoundsException: Source does not fit in dest
		//前提條件是目標列表的長度必須大於等於源列表的長度*/
		dest.add("jajva");
		dest.add("jajva");
		dest.add("jajva");		
		dest.add("jajva");
		dest.add("jajva");
		dest.add("jajva");
		Collections.copy(dest, src);
		System.out.println(dest);//OUT:[hello, Android, java, jajva, jajva, jajva]
		Collections.sort(dest);
	}

	private static void method1() {
		//static <T> int binarySearch(list list, Object key)使用二分搜尋法搜尋指定列表,以獲得指定物件。 
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		list.add(5);
		int index =  Collections.binarySearch(list, 4);
		System.out.println(index);
	}

}