ToB企服应用市场:ToB评测及商务社交产业平台

标题: 7-LinkedHashSet底层结构和源码分析 [打印本页]

作者: 天津储鑫盛钢材现货供应商    时间: 2024-7-12 18:13
标题: 7-LinkedHashSet底层结构和源码分析
7-LinkedHashSet底层结构和源码分析

介绍汇总:
1-LinkedHashSet全面说明


2-LinkedHashSet底层机制说明

  1. // 添加示意代码
  2. tail.next = newElement
  3. newElement.pre = tail
  4. tail = newElement
复制代码
<ol start="4">这样的话,遍历 LinkedHashSet 也能确保插入次序和遍历次序一致
LinkedHashSet 继承了 HashSet 的全部特性,并且基本上都是调用其父类的方法举行。而其内部是维护了一个 LinkedHashMap,并且 LinkedHashMap 也继承了 HashMap 的全部特性,并且扩容流程也是和父类一致大概就是直接调用父类的扩容流程,只是此中有一些关键类和方法举行了重写。例如,数据结点 Entry (继承 HashMap 的内部类 Node )。还有创建新数据结点方法 newNode 方法举行了重写,创建 Entry 结点,并且增长了维护的双向链表的增长机制。还有一个就是 newTreeNode 方法,创建好后树结点,举行链表添加,并且该 TreeNode 结点是继承了 Entry 全部特性。
最主要就是 LinkedHashSet 与 HashSet 多维护了双向链表,可以按添加次序举行遍历。
当前仅是介绍了添加元素的底层。
实践练习
[code]package set.linkedhashset;import java.util.LinkedHashSet;public class LinkedHashSetSource {    @SuppressWarnings({"all"})    public static void main(String[] args) {        // 测试链表树化        // 与 HashMap 中的树化流程基本一致,满足两个条件才可树化        // 只是多了双向链表        LinkedHashSet linkedHashSet = new LinkedHashSet();        for (int i = 1; i




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4