High-performance collection data structures for MoonBit, including ordered maps and sets, bitsets, deques, caches, heaps, and AVL trees.
| 包 | 作用 | 典型复杂度 |
|---|---|---|
| src/indexmap | 保持插入顺序的哈希映射 | 查询/更新平均 O(1);shift_remove 为 O(n);swap_remove 平均 O(1) |
| src/indexset | 保持插入顺序的集合 | 插入/查询平均 O(1) |
| src/bitset | 基于 Array[Int] 的动态位图 | 单点操作 O(1);集合运算按机器字长度批量处理 |
| src/lru_cache | 双向链表 + 哈希表的 LRU 缓存 | get/set/remove 平均 O(1) |
| src/priority_queue | 支持自定义比较器的二叉堆 | peek 为 O(1);push/pop 为 O(log n) |
| src/sorted_map | AVL 树有序映射 | 查询/插入/删除为 O(log n) |
| src/sorted_set | 基于 SortedMap[T, Unit] 的 AVL 有序集合 | 查询/插入/删除为 O(log n) |
| src/deque | 基于循环缓冲区的双端队列 | 两端插入/删除均摊 O(1) |
| src/graph | 确定性邻接表图与图算法 | 遍历 O(V+E);拓扑排序 O(V+E) |
| src/disjoint_set | 路径压缩并查集 | 合并/查询近似 O(α(n)) |
moon add Hhsqoo/moon-collectionsimport {
"Hhsqoo/moon-collections/src/indexmap" @indexmap,
"Hhsqoo/moon-collections/src/bitset" @bitset,
"Hhsqoo/moon-collections/src/graph" @graph,
"Hhsqoo/moon-collections/src/disjoint_set" @disjoint_set,
}let map : @indexmap.IndexMap[String, Int] = @indexmap.IndexMap::new()
let _ = map.set("moon", 1)
let _ = map.set("bit", 2)
println("keys: \{map.keys().to_array()}")
let bits = @bitset.BitSet::new()
bits.set(31)
bits.set(32)
println("set bits: \{bits.iter().to_array()}")
let dependencies : @graph.Graph[String] = @graph.Graph::new(true)
let _ = dependencies.add_edge("parse", "typecheck")
let _ = dependencies.add_edge("typecheck", "codegen")
println("build order: \{dependencies.topological_sort()}")
let connectivity = @disjoint_set.DisjointSet::new(4)
let _ = connectivity.union(0, 1)
println("connected: \{connectivity.connected(0, 1)}")moon run src/examplesmoon update
moon fmt
moon check --fmt --deny-warn
moon check --target all --deny-warn
moon build --target all
moon test --target all --deny-warn
moon info
git diff --exit-codemoon run src/benchmarks --target native| 工作负载 | 中位耗时 | 校验和 |
|---|---|---|
| IndexMap 100,000 次写入 + 查询 | 28 ms | 1409965408 |
| BitSet 100,000 次设置 + 遍历 | 28 ms | 1666683333 |
moon.mod # 模块元数据和版本
src/indexmap # 有序哈希映射
src/indexset # 有序集合
src/bitset # 动态位图
src/lru_cache # LRU 缓存
src/priority_queue # 二叉堆优先队列
src/sorted_map # AVL 有序映射
src/sorted_set # AVL 有序集合
src/deque # 循环缓冲双端队列
src/examples # 可直接运行的示例
src/benchmarks # 可复现 native 基准入口
docs/graph-and-connectivity.md # 图算法与并查集使用说明
docs/architecture.md # 数据结构和不变量
docs/performance.md # 基准方法与数据
pkg.generated.mbti # moon info 生成的公共接口摘要High-performance collection data structures for MoonBit, including ordered maps and sets, bitsets, deques, caches, heaps, and AVL trees.