1. 程式人生 > >Java操作集合的工具類

Java操作集合的工具類

一、介紹 提供了大量的方法對集合元素進行排序,查詢,修改等操作,還提供了將集合物件這職位不可變、對集合物件實現同步控制的方法 二、排序、查詢、替換
import java.util.ArrayList;
import java.util.Collections;

public class SortTest {

	public static void main(String[] args) {
		// TODO 自動生成的方法存根

		ArrayList nums = new ArrayList();
		nums.add(2);
		nums.add(-4);
		nums.add(43);
		nums.add(0);
		nums.add(2);
		System.out.println(nums);

		Collections.reverse(nums);// 次序反轉
		System.out.println(nums);
		Collections.sort(nums);// 排序
		System.out.println(nums);
		Collections.shuffle(nums);// 隨機排序
		System.out.println(nums);

		System.out.println("最大  " + Collections.max(nums));
		System.out.println("最小  " + Collections.min(nums));
		Collections.replaceAll(nums, 0, 1);// 將0替換為1
		System.out.println(nums);

		System.out.println("元素2在集合中出現的次數  " + Collections.frequency(nums, 2));

		Collections.sort(nums);// 排序後進行二分法查詢
		System.out.println(nums);
		System.out.println(Collections.binarySearch(nums, 43));

	}

}
三、同步控制 提供了多個synchronizedXxx()方法,可以將指定集合包裝成執行緒同步的集合,從而解決多執行緒併發訪問集合時執行緒安全的問題。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class SynchronizedTest {

	public static void main(String[] args) {
		//提供了4種方法

		Collection collections=Collections.synchronizedCollection(new ArrayList());
		List list=Collections.synchronizedList(new ArrayList());
        Set set=Collections.synchronizedSet(new HashSet());
        Map map=Collections.synchronizedMap(new HashMap());
		
	}

}

四、設定不可變集合
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class UnmodfiableTest {

	public static void main(String[] args) {
		// 建立一個空的不可改變的List
		List unmodifiableList=Collections.emptyList();
		//只有一個元素不可改變的Set
		Set unmodifiableSet=Collections.singleton("java");
		//建立一個Map
		Map score=new HashMap();
		score.put("語文", 90);
		score.put("數學", 100);
		//返回普通Map物件的不可變版本
		Map unmodifiableMap=Collections.unmodifiableMap(score);
		//以下程式碼會產生異常
		unmodifiableList.add("1234");
		unmodifiableSet.add("hello");
		unmodifiableMap.put("ahah", 66);
		

	}

}