做暖暖在线获取网站物业公司名字大全免费
2026/4/18 6:45:01 网站建设 项目流程
做暖暖在线获取网站,物业公司名字大全免费,信阳住房和城乡建设局网站,店铺运营计划方案Java TreeMap 和 TreeSet#xff1a;基于红黑树的有序集合TreeMap 和 TreeSet 是 Java 集合框架中的两种重要数据结构#xff0c;它们都基于红黑树#xff08;Red-Black Tree#xff09;实现#xff0c;提供了有序的元素存储和操作方式。TreeMap 用于存储键值对#xff0…JavaTreeMap和TreeSet基于红黑树的有序集合TreeMap和TreeSet是 Java 集合框架中的两种重要数据结构它们都基于红黑树Red-Black Tree实现提供了有序的元素存储和操作方式。TreeMap用于存储键值对key-value而TreeSet用于存储不重复的元素。它们的底层实现原理非常相似但由于存储结构和用途的不同具体实现也有所区别。1. 红黑树数据结构的基础红黑树概述红黑树是一种自平衡的二叉查找树具有以下特点每个节点要么是红色要么是黑色。根节点是黑色。每个叶子节点NIL 节点是黑色。如果一个红色节点的父节点是红色的则违反红黑树规则因此红色节点的子节点必须是黑色。从根节点到每个叶子节点的路径上黑色节点的数量必须相同。红黑树的高度是平衡的因此它的查找、插入和删除操作的时间复杂度为O(log n)。2.TreeMap的实现原理TreeMap 基本结构TreeMap实现了NavigableMap接口而NavigableMap继承自SortedMap。TreeMap的核心数据结构是一个红黑树。每个树节点包含一个键值对key 和 value并根据 key 进行排序。TreeMap 插入过程TreeMap中的插入操作通过红黑树实现在插入新节点时会保持红黑树的平衡。插入的过程包括查找位置根据 key 比较找到合适的位置。插入节点找到位置后创建新的节点并插入到树中。平衡调整插入后调用fixAfterInsertion来确保红黑树的平衡性。fixAfterInsertion插入后平衡树颜色调整如果父节点是红色节点需要进行颜色调整。旋转调整通过左旋或右旋来保持红黑树的平衡。3.TreeSet的实现原理TreeSet和TreeMap非常相似不同之处在于TreeSet不存储值只存储键。内部结构使用TreeMap来实现而TreeMap中的 key 就是TreeSet中的元素。TreeSet 的实现TreeSet底层通过TreeMap来存储元素所有的操作如添加、删除、查找等都会通过TreeMap实现。TreeMap存储元素的同时保证它们的有序性。4. 查找与删除操作查找操作TreeMap和TreeSet的查找操作都基于红黑树的查找方式。通过compare()方法来比较键值查找时间复杂度是O(log n)。删除操作删除操作需要先找到要删除的节点然后通过旋转和颜色调整来保持红黑树的平衡。示例代码TreeMap的删除操作java复制public V remove(Object key) { EntryK, V p getEntry(key); if (p null) return null; deleteEntry(p); return p.value; } private void deleteEntry(EntryK, V p) { if (p.left ! null p.right ! null) { EntryK, V s successor(p); p.key s.key; p.value s.value; p s; } EntryK, V replacement (p.left ! null ? p.left : p.right); if (replacement ! null) { replacement.parent p.parent; if (p.parent null) root replacement; else if (p p.parent.left) p.parent.left replacement; else p.parent.right replacement; p.left p.right p.parent null; } else if (p.parent null) { root null; } else { if (p p.parent.left) p.parent.left null; else p.parent.right null; p.parent null; } size--; modCount; }5. 总结TreeMap和TreeSet都基于红黑树实现提供了高效的查找、插入和删除操作。TreeMap存储键值对TreeSet只存储键。插入和删除操作会触发红黑树的旋转和颜色调整以保证树的平衡性。TreeSet是TreeMap的一个封装利用TreeMap来实现元素的有序存储。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询