天天看點

Java集合架構篇-57-LinkedHashSet基本概述和使用

      這篇,學習一個HashSet類的子類,叫LinkedHashSet,看名稱就大概明白是什麼作用。LinkedHashSet是底層用連結清單實作的一種HashSet集合。前面我們知道,連結清單存儲是List的一種實作方式,最明顯的特點就是能保證元素的存入和取出順序是一緻的。這個特點,剛好彌補了Set集合無序的缺點。

1.API閱讀關于LinkedHashSet

       具有可預知疊代順序的 Set 接口的哈希表和連結清單實作。此實作與 HashSet 的不同之外在于,後者維護着一個運作于所有條目的雙重連結清單。此連結清單定義了疊代順序,即按照将元素插入到 set 中的順序(插入順序)進行疊代。例如,插入元素順序是a-b-c-d,疊代輸出屬性也是a-b-c-d。

       LinkedHashSet的構造方法有4個,然後沒有一個自己的成員方法,想方法都是使用父類或者間接父類的方法。例如添加元素add()方法就是Set集合的方法。

2.LinkedHashSet代碼簡單示範

下面寫一個LinkedHashSet,寫一個添加元素,然後列印周遊元素的代碼。

package hashset;

import java.util.LinkedHashSet;

public class Demo1_LinkedHashSet {

	public static void main(String[] args) {
		LinkedHashSet<String> lhs = new LinkedHashSet<>();
		//1.添加元素
		lhs.add("a");
		lhs.add("a");
		lhs.add("a");
		lhs.add("b");
		lhs.add("b");
		lhs.add("c");
		lhs.add("c");
		lhs.add("d");
		
		//2.直接列印集合
		System.out.println(lhs);
		
		//3 for each實作疊代
		for (String string : lhs) {
			System.out.println(string);
		}
	}

}
           

輸出:

[a, b, c, d]
a
b
c
d
           

3.LinkesdHashSet特點總結

1)是HashSet的一個子類,是以也是能保證元素唯一的,和HashSet原理一樣

2)底層是連結清單實作的,是Set集合中唯一一個能保證怎麼存就怎麼取的集合對象

繼續閱讀