Java的LinkedHashSet解析
LinkedHashSet
LinkedHashSet用的也比较少,其也是基于Set的实现。
1 LinkedHashSet继承关系

和HashSet一样,其也是Set接口的实现类,并且是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) {
//调用HashSet的构造方法
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完全一样,那么二者区别是什么呢?
1.首先LinkedHashSet是HashSet的子类。
2.LinkedHashSet中用于存储值的实现LinkedHashMap,而HashSet使用的是HashMap。
LinkedHashSet中调用的父类构造器,可以看到其实列是一个LinkedHashMap。
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkedHashMap<>(initialCapacity, loadFactor);
}LinkedHashSet的实现很简单,更深入的了解需要去看LinkedHashMap的实现,对LinkedHashMap的解析将单独提出。
实现
LinkedHashSet底层使用LinkedHashMap存储元素。
LinkedHashSet是有序的,它是按照插入顺序排序的。
public LinkedHashSet() {
super(16, .75f, true);
}
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkedHashMap<>(initialCapacity, loadFactor);
}LinkedHashSet中没有定义如添加、删除等方法,调用的都是父类HashSet中的方法
不支持按访问顺序访问,只能按插入顺序访问。
用法
import java.util.*;
public class Test {
public static void main(String[] args) {
LinkedHashSet<Integer> set = new LinkedHashSet<>();
set.add(3);
set.add(1);
System.out.println(set.toString());
}到此这篇关于Java的LinkedHashSet解析的文章就介绍到这了,更多相关LinkedHashSet解析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
IntelliJ IDEA AI Assistant 携带OpenCode保姆级
本文介绍了JetBrains官方AI插件AIAssistant的安装、使用及接入本地客户端的过程,通过安装、测试、接入本地客户端等步骤,详细描述了使用过程中的注意事项和操作方法,感兴趣的朋友跟随小编一起看看吧2026-04-04
springboot ElasticSearch如何配置自定义转换器ElasticsearchCustomConver
这篇文章主要介绍了springboot ElasticSearch如何配置自定义转换器ElasticsearchCustomConversions问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-08-08


最新评论