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

  


 

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