Java工具類--Set集合(二)

/**
 * Set集合和Collection 接口中方法是一樣
 *   Set:
 *     |--HashSet 哈希表(實際上是一個 HashMap 實例)支持。它不保證 set 的迭代順序;
 *        |--LinkedHashSet 可預知迭代順序(添加的順序)的 Set 接口的哈希表和鏈接列表實現
 *     			      特別是它不保證該順序恆久不變。此類允許使用 null 元素。
 *     |--TreeSet 使用元素的自然順序對元素進行排序,或者根據創建 set 時提供的 Comparator 進行排序,具體取決於使用的構造方法。
 *
 */
public class LinkedHashSetDemo {
	public static void main(String[] args) {
		HashSet<String> hs = new LinkedHashSet<>();
		HashSet<Personnel> hp = new LinkedHashSet<>();

		fonctions(hs);
		System.out.println();
		fonctionp(hp);
	}

	private static void fonctions(HashSet<String> hs) {
		//添加數據
		hs.add("方明");
		hs.add("張鵬");
		hs.add("小芳");
		hs.add("阿莉");
		hs.add("c");
		hs.add("XX");
		System.out.println("打印對象數據源:"+hs);
		
		iterators(hs);
	}

	private static void fonctionp(HashSet<Personnel> hp) {
		//添加對象
		Personnel p = new Personnel("xiaofang",18);
		Personnel pr = new Personnel("zhangsan",10);
		hp.add(new Personnel("lisi",20));
		//添加兩次
		hp.add(new Personnel("lisi",20));
		hp.add(new Personnel("wangwu",30));
		hp.add(p);

		hp.add(pr);

		System.out.println("打印對象數據源:"+hp);
		iteratorp(hp);
		
		//其他的方法和HashSet方法相同
	}
	
	private static void iterators(HashSet<String> lp) {
		System.out.println("循環迭代數據:");		
		Iterator<String> is = lp.iterator();
		while(is.hasNext()){
			System.out.println(is.next());
		}
	}
	
	private static void iteratorp(HashSet<Personnel> lp) {
		System.out.println("循環迭代數據:");		
		Iterator<Personnel> ip = lp.iterator();
		while(ip.hasNext()){
			System.out.println(ip.next());
		}
	}
}

運行結果:
打印對象數據源:[方明, 張鵬, 小芳, 阿莉, c, XX]
循環迭代數據:
方明
張鵬
小芳
阿莉
c
XX

打印對象數據源:[lisi:20, wangwu:30, xiaofang:18, zhangsan:10]
循環迭代數據:
lisi:20
wangwu:30
xiaofang:18
zhangsan:10

參考Api:

類 LinkedHashSet<E>

java.lang.Object
  |--java.util.AbstractCollection<E>
      |--java.util.AbstractSet<E>
          |--java.util.HashSet<E>
              |--java.util.LinkedHashSet<E>
構造方法摘要
LinkedHashSet() 
          構造一個帶默認初始容量 (16) 和加載因子 (0.75) 的新空鏈接哈希 set。
LinkedHashSet(Collection<? extends E> c) 
          構造一個與指定 collection 中的元素相同的新鏈接哈希 set。
LinkedHashSet(int initialCapacity) 
          構造一個帶指定初始容量和默認加載因子 (0.75) 的新空鏈接哈希 set。
LinkedHashSet(int initialCapacity, float loadFactor) 
          構造一個帶有指定初始容量和加載因子的新空鏈接哈希 set。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章