一名开发者在 Hacker News 的 Show HN 板块发布了名为 ChaosTree 的 Java 树库,该库不依赖任何第三方组件,围绕 AVL 树、红黑树、B 树和 B+ 树四种实现构建,提供有序集合与有序映射功能。发布时间为 2026 年 9 月 14 日。

据该开发者介绍,ChaosTree 没有另造一套 API,而是实现了 Java 标准库中的 NavigableSet、NavigableMap、SequencedSet 和 SequencedMap 接口,同时补充了三个自有方法:buildFromSorted 用于从迭代器按序构建,importFlatMatrix 与 exportFlatMatrix 用于二维对象数组形式的导入导出。

项目起因于开发者想探索自己在数据结构方面能学到什么程度。最初版本包含 7 种 Set 类型树和自有 API,随后转向 Map 类型。据其描述,从 Set 切换到 Map 的过程带来了较大的改动与认知提升,项目支持范围也从 JDK 11 以上推进到 JDK 21 以上,并重点关注无依赖、内存布局、内存分配、JVM 行为以及实际运行性能。

在实现过程中,开发者尝试了多种节点布局与元数据占用方案、用于树实现的 CRTP 与 F 界多态、带父指针与不带父指针的节点、基于数组的 N 叉树节点、B 树与 B+ 树的度数选择,并使用 JMH 做基准测试、JFR 做性能剖析,还与 java.util.TreeMap 和 TreeSet 进行差分与随机化对比测试。

测试方面,该库通过了 Guava Testlib 兼容性测试、jqwik 基于属性的测试、针对参考集合的随机差分测试、树节点白盒结构校验、B 树与 B+ 树结构不变量直接校验、异常与迭代器契约测试以及序列化和克隆测试;N 叉树部分使用自行编写的 jqwik 测试验证 API。开发者表示,尾延迟数据未在此处展示,原因是结果被截断为纯文本后导致数据读取错误,完整 JMH 报告放在项目页面上,并称已用官方 JDK 的 TreeMapUpdate 与其 N 叉树做过基准对比。

开发者把项目代码托管在 GitHub,并提供了项目主页,希望获得关于 API 设计、实现取舍和基准测试方法的反馈,同时表示当前正尝试裁剪无用且复杂的代码分支以进行性能调优。该帖在 Hacker News 上获得 6 分、4 条评论。