1. 程式人生 > >Java中Set集合的使用

Java中Set集合的使用



     Set類繼承了Conllection類,是一種集合類。Set的實現類有三個,下面我們會一一來說這些的不一樣。

     HashSet

         HashSet類按照雜湊演算法來存取集合中的物件,存取速度比較快。

         1.Set中是不能出現重複資料的。

         2.Set中可以出現空資料。

         3.Set中的資料是無序的。

         詳細見demo:

	Set<String> set = new HashSet<String>();
    	for(int i= 0;i<6;i++){
		set.add(i+"");
    	}
    	set.add("3");		//重複資料,不會寫入
    	set.add(null);		//可以寫入空資料
    	Iterator<String> iter = set.iterator();
    	while(iter.hasNext()){
		System.out.println(iter.next());		//輸出是無序的
    	}

       這段執行之後的列印輸出是:

null
3
2
1
0
5
4

    LinkedHashSet

        這個相對於HashSet來說有一個很大的不一樣是LinkedHashSet是有序的。LinkedHashSet在迭代訪問Set中的全部元素時,效能比HashSet好,但是插入時效能稍微遜色於HashSet。

       詳細見demo:

	Set<String> set = new LinkedHashSet<String>();
	for(int i= 0;i<6;i++){
		set.add(i+"");
	}
	set.add("3");		//重複資料,不會寫入
	set.add(null);		//可以寫入空資料
	Iterator<String> iter = set.iterator();
	while(iter.hasNext()){
		System.out.println(iter.next());		//輸出是有序的
	}

         輸出列印如下:

0
1
2
3
4
5
null

    TreeSet

         TreeSet的特點是:

         1.不能寫入空資料

         2.寫入的資料是有序的。

         3.不寫入重複資料

        詳細見demo:

	Set<String> set = new TreeSet<String>();
	for(int i= 0;i<6;i++){
		set.add(i+"");
	}
	set.add("3");		//重複資料,不會寫入
	//set.add(null);		//不可以寫入空資料		
	Iterator<String> iter = set.iterator();
	while(iter.hasNext()){
		System.out.println(iter.next());		//輸出是有序的
	}

     輸出列印為:

0
1
2
3
4
5