news 2026/4/22 16:22:58

js--18

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
js--18

一、树结构基础

1. 二叉查找树(BST)

  • 核心规则:左子树所有节点值 < 当前节点值 < 右子树所有节点值,无重复节点。
  • 添加规则:小值存左、大值存右、等值不存。
  • 遍历方式
    • 前序:当前节点 → 左子节点 → 右子节点
    • 中序:左子节点 → 当前节点 → 右子节点
    • 后序:左子节点 → 右子节点 → 当前节点
    • 层序:按层次从上到下、从左到右遍历

2. 平衡二叉树(AVL 树)

  • 核心规则:任意节点左右子树高度差 ≤ 1。
  • 旋转机制:添加节点破坏平衡时,通过左旋 / 右旋恢复平衡:
    • 左左型:一次右旋
    • 左右型:先左旋后右旋
    • 右右型:一次左旋
    • 右左型:先右旋后左旋

3. 红黑树

  • 核心特性:自平衡二叉查找树,通过 “红黑规则” 实现平衡(非高度严格平衡)。
  • 红黑规则
    1. 节点颜色仅为红 / 黑;
    2. 根节点必为黑;
    3. 叶节点(NIL)为黑;
    4. 红节点的子节点必为黑;
    5. 任意节点到其叶节点的路径黑节点数相同。
  • 添加规则
    • 新节点默认红色(减少规则冲突);
    • 根节点直接设为黑色;
    • 父节点为黑:无需操作;
    • 父节点为红:根据叔叔节点颜色调整(变色 / 旋转)。

二、Set 系列集合

1. 核心特性

  • 无序(LinkedHashSet 除外)、不重复、无索引。
  • 无索引:不能用普通 for 循环遍历,无索引操作方法。

2. 实现类对比

表格

实现类核心特点底层结构适用场景
HashSet无序、去重、效率最高哈希表(数组 + 链表 + 红黑树)普通去重场景(默认选择)
LinkedHashSet有序(存取一致)、去重哈希表 + 双向链表去重且需保证存取顺序
TreeSet可排序、去重红黑树去重且需对元素排序

3. 哈希表底层原理

  • 结构:JDK8 前为数组 + 链表,JDK8 后为数组 + 链表 + 红黑树(链表长度 > 8 且数组长度≥64 时转红黑树)。
  • 存储流程
    1. 计算元素哈希值,确定数组存储位置;
    2. 位置为空则直接存入;
    3. 位置非空则调用equals()比较:
      • 属性值相同:不存入(去重);
      • 属性值不同:JDK8 前新元素存数组,老元素挂其后;JDK8 后新元素挂老元素后。
  • 关键要求:存储自定义对象时,必须重写hashCode()equals()保证去重逻辑正确。

4. TreeSet 排序规则

表格

排序方式实现方式特点
自然排序实体类实现Comparable接口,重写compareTo方法规则绑定实体类(侵入式)
比较器排序创建 TreeSet 时传入Comparator比较器规则与实体类解耦(更灵活)
  • 默认排序规则
    • 数值类型:从小到大;
    • 字符 / 字符串:按 ASCII 码升序。

三、集合选择指南

  1. 元素可重复
    • 默认选ArrayList(查询快);
    • 增删多选LinkedList(增删快)。
  2. 元素去重
    • 默认选HashSet(效率最高);
    • 需有序选LinkedHashSet
    • 需排序选TreeSet(或 List + 排序方法)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 15:19:38

单北斗GNSS在水库变形监测中的应用与维护研究

本文将探讨单北斗GNSS在水库变形监测中的具体应用与维护。单北斗GNSS系统结合高精度定位和实时监测数据传输&#xff0c;极大提升了水库的安全管理能力。通过GNSS变形监测一体机与传感器的集成&#xff0c;该系统能够有效收集水库的形变信息&#xff0c;并快速识别潜在风险。此…

作者头像 李华
网站建设 2026/4/18 21:52:38

GeotrustOV通配符SSL证书续费

续费GeoTrust组织验证(OV)通配符SSL证书涉及以下几个方面&#xff1a;您可以在证书到期前最多90天通过您的供应商&#xff08;例如Gworg&#xff09;发起续订&#xff0c;生成新的证书签名请求(CSR)&#xff0c;并完成组织验证流程。证书有效期最长为200天&#xff0c;可通过管…

作者头像 李华
网站建设 2026/4/15 19:04:03

多台三相逆变器并联仿真:基于VSG控制的功率均分探索

多台三相逆变器并联&#xff08;本模型为三台并联&#xff0c;市面上多为两台并联&#xff09;matlab/simulink仿真。 功能&#xff1a;实现并联系统中各逆变器输出功率均分。 &#xff08;有能力的话还可以研究下垂特性、功率指令以及静态功工作点三者之间的联系&#xff09; …

作者头像 李华
网站建设 2026/4/18 11:34:50

理解mybatis向上抽取的概念

1. 先理解 “向上抽取” 的核心概念“向上抽取” 本质是面向抽象编程 通用逻辑复用 的设计思想&#xff1a;把数据库操作&#xff08;CRUD&#xff09;中重复、通用、固定的逻辑 从业务代码中抽离出来&#xff0c;封装到更上层的抽象层&#xff08;比如通用父类 / 接口&#x…

作者头像 李华
网站建设 2026/4/18 10:41:23

SpringBoot 开发第二天 学习内容

本次学习核心围绕SpringBoot Web 开发展开&#xff0c;涵盖静态资源映射、模板引擎 Thymeleaf、SpringMVC 整合与扩展、嵌入式 Servlet 容器配置及外置 Servlet 容器部署五大核心模块&#xff0c;同时涉及 SpringBoot 自动配置的底层原理和实际开发中的扩展技巧。 一、Web 开发…

作者头像 李华