這篇,學習一個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集合中唯一一個能保證怎麼存就怎麼取的集合對象