天天看點

LinkedHashSet 實作

package andycpp;

import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;

import org.junit.Test;

/**
 * Collection接口:
 * 		List接口
 * 				ArrayList(主要的實作類)
 * 				LinkedList(對于頻繁的插入删除操作)
 * 				Vector(古老的實作類,線程安全,但效率要低于ArrayList)
 * 		Set接口	存儲無序,不可重複的元素.Set中常用的方法都是Collection下定義的。
 * 				HashSet(主要實作類)
 * 				LinkedHashSet
 * 				TreeSet
 * */
public class TestSet {
	/*
	 * LinkedHashSet:使用連結清單維護了一個添加進集合中的順序。導緻當我們周遊LinkedHashSet集合元素時,時按照添加進去的順序周遊的。
	 * LinkedHashSet插入性能略低于hashSet(因為插入同時還有維護一個連結清單),但在通路Set裡的全部元素時有很好的性能
	 * */
	@Test
	public void testHashSet(){
		Set set = new LinkedHashSet();
		set.add(123);
		set.add(456);
		set.add(new String("AA"));
		set.add(new String("AA"));
		set.add("BB");
		set.add(null);
		
		Iterator iterator = set.iterator();
		while(iterator.hasNext()){
			System.out.println(iterator.next());
		}
		
	}
}