java集合类史上最细讲解 - LinkedHashSet篇

简介: 1.LinkedHashSet介绍LinkedHashSet是HashSet的子类,底层是一个LinkedHashMap,维护了一个数组 + 双向链表和HashSet不同的是,双向链表可以维护元素的次序,这使得元素看起来是以插入顺序保存的同样的,LinkedHashSet也不允许添加重复元素


1.LinkedHashSet介绍


LinkedHashSet是HashSet的子类,底层是一个LinkedHashMap,维护了一个数组 + 双向链表


和HashSet不同的是,双向链表可以维护元素的次序,这使得元素看起来是以插入顺序保存的


同样的,LinkedHashSet也不允许添加重复元素


2.LinkedHashSet使用实例


import java.util.LinkedHashSet;
import java.util.Set;
/**
 * LinkedHashSet
 */
public class LinkedHashSetText {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        Set linkedHashSet = new LinkedHashSet();
        linkedHashSet.add("dahe");
        linkedHashSet.add(521);
        linkedHashSet.add(521);
        System.out.println(linkedHashSet);  // [dahe, 521]
    }
}


3.LinkedHashSet源码分析


第一次添加元素的时候,table数组扩容到16:


public LinkedHashSet() {
    super(16, .75f, true);
}


HashSet(int initialCapacity, float loadFactor, boolean dummy) {
    map = new LinkedHashMap<>(initialCapacity, loadFactor);
}


再执行添加操作时,底层走的其实还是HashSet那一套


LinkedHashSet存在静态内部类Entry


里面维护了当前节点的next和prev,这使得链表可以变得有序起来


目录
相关文章
|
2月前
|
Oracle Java 关系型数据库
掌握Java Stream API:高效集合处理的利器
掌握Java Stream API:高效集合处理的利器
338 80
|
27天前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
273 120
|
2月前
|
并行计算 Java API
Java List 集合结合 Java 17 新特性与现代开发实践的深度解析及实战指南 Java List 集合
本文深入解析Java 17中List集合的现代用法,结合函数式编程、Stream API、密封类、模式匹配等新特性,通过实操案例讲解数据处理、并行计算、响应式编程等场景下的高级应用,帮助开发者提升集合操作效率与代码质量。
129 1
|
2月前
|
存储 缓存 NoSQL
java 集合入门基础理论的核心概念与实用长尾知识
本文介绍了Java集合框架的基础理论知识,包括单列集合(List、Set、Queue)和双列集合(Map)的特点及常用实现类(如ArrayList、HashSet、HashMap等)。详细讲解了集合的遍历方式(迭代器、增强for循环、Lambda表达式)和典型应用场景(如数据去重、键值存储等)。通过具体代码示例,帮助初学者理解集合框架的核心概念和实际应用,为Java编程中的数据存储与管理提供基础指导。
77 0
|
2月前
|
安全 Java API
Java 集合高级应用与实战技巧之高效运用方法及实战案例解析
本课程深入讲解Java集合的高级应用与实战技巧,涵盖Stream API、并行处理、Optional类、现代化Map操作、不可变集合、异步处理及高级排序等核心内容,结合丰富示例,助你掌握Java集合的高效运用,提升代码质量与开发效率。
193 0
|
2月前
|
Java API
深入解析Java API中Object类的功能
了解和合理运用 Object类的这些方法,对于编写可靠和高效的Java应用程序至关重要。它们构成了Java对象行为的基础,影响着对象的创建、识别、表达和并发控制。
61 0
|
2月前
|
存储 安全 Java
Java 学习路线 35 掌握 List 集合从入门到精通的 List 集合核心知识
本文详细解析Java中List集合的原理、常用实现类(如ArrayList、LinkedList)、核心方法及遍历方式,并结合数据去重、排序等实际应用场景,帮助开发者掌握List在不同业务场景下的高效使用,提升Java编程能力。
289 0
|
2月前
|
安全 Java
JAVA:Collections类的shuffle()方法
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的工具方法,适用于洗牌、抽奖等场景。该方法直接修改原列表,支持自定义随机数生成器以实现可重现的打乱顺序。使用时需注意其原地修改特性及非线程安全性。
99 0
|
2月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。

热门文章

最新文章