Java中的LinkedHashSet解析
LinkedHashSet
LinkedHashSet用的也比較少,其也是基于Set的實現(xiàn)。
1 LinkedHashSet繼承關(guān)系

和HashSet一樣,其也是Set接口的實現(xiàn)類,并且是HashSet的子類。
2 LinkedHashSet源碼
package java.util;
public class LinkedHashSet<E>
extends HashSet<E>
implements Set<E>, Cloneable, java.io.Serializable {
private static final long serialVersionUID = -2851667679971038690L;
public LinkedHashSet(int initialCapacity, float loadFactor) {
//調(diào)用HashSet的構(gòu)造方法
super(initialCapacity, loadFactor, true);
}
public LinkedHashSet(int initialCapacity) {
super(initialCapacity, .75f, true);
}
public LinkedHashSet() {
super(16, .75f, true);
}
public LinkedHashSet(Collection<? extends E> c) {
super(Math.max(2*c.size(), 11), .75f, true);
addAll(c);
}
@Override
public Spliterator<E> spliterator() {
return Spliterators.spliterator(this, Spliterator.DISTINCT |
Spliterator.ORDERED);
}
}其操作方法和HashSet完全一樣,那么二者區(qū)別是什么呢?
1.首先LinkedHashSet是HashSet的子類。
2.LinkedHashSet中用于存儲值的實現(xiàn)LinkedHashMap,而HashSet使用的是HashMap。LinkedHashSet中調(diào)用的父類構(gòu)造器,可以看到其實列是一個LinkedHashMap。
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkedHashMap<>(initialCapacity, loadFactor);
}
LinkedHashSet的實現(xiàn)很簡單,更深入的了解需要去看LinkedHashMap的實現(xiàn),對LinkedHashMap的解析將單獨提出。
到此這篇關(guān)于Java中的LinkedHashSet解析的文章就介紹到這了,更多相關(guān)LinkedHashSet解析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringSecurity自定義AuthenticationProvider無法@Autowire的解決
這篇文章主要介紹了SpringSecurity自定義AuthenticationProvider無法@Autowire的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
mybatis-plus?實現(xiàn)查詢表名動態(tài)修改的示例代碼
通過MyBatis-Plus實現(xiàn)表名的動態(tài)替換,根據(jù)配置或入?yún)⑦x擇不同的表,本文主要介紹了mybatis-plus?實現(xiàn)查詢表名動態(tài)修改的示例代碼,具有一定的參考價值,感興趣的可以了解一下2025-03-03

