SortedSet 是一种保持元素(Value)始终有序且不重复的集合容器。
默认情况下,它使用 SortedBlockArray 以换取最佳的综合读写性能,见 解决方案。
Kernel extends SortedKernel<T> = SortedBlockArray<T>
> extends InternalIterable<T>;
| 方法 | 描述 |
|---|
| constructor(compareFn?, kernelFactory?) | 构造一个新的 SortedSet。compareFn 定义元素的排序规则;kernelFactory 可选,用于提供自定义存储内核实例。 |
| 方法 | 描述 | 复杂度 (默认内核) |
|---|
| add(value) | 向集合中添加一个元素。如果已存在则跳过。 | O(B + N/B) |
| has(value) | 检查集合中是否存在指定的元素。 | O(log N) |
| delete(value) | 移除指定的元素。返回是否移除成功。 | O(B + N/B) |
| 方法 | 描述 | 复杂度 (默认内核) |
|---|
| lower_bound(value) | 返回指向第一个不小于给定值的元素游标。 | O(log N) |
| upper_bound(value) | 返回指向第一个大于给定值的元素游标。 | O(log N) |
| lowerBound(value) | 返回第一个不小于给定值的元素的逻辑排名 (Rank)。 | O(log N) |
| upperBound(value) | 返回第一个大于给定值的元素的逻辑排名 (Rank)。 | O(log N) |
| rank(value) | lowerBound 的别名。 | O(log N) |
| kth(index) | 返回逻辑排名为 index 的元素。 | O(log N) |
| min() | 返回集合中最小的元素。 | O(1) |
| max() | 返回集合中最大的元素。 | O(1) |
| 方法 | 描述 | 复杂度 |
|---|
| size | 返回集合中元素的总数。 | O(1) |
| length | size 的别名。 | O(1) |
| isEmpty() | 检查集合是否为空。 | O(1) |
| clear(reuse = true) | 清空所有数据。 | O(1) |
| 方法 | 描述 |
|---|
| cursor(index = 0) | 返回一个指向指定逻辑排名的双向随机访问游标。 |
| values() | 返回所有元素的 ES6 迭代器。 |
| [Symbol.iterator]() | 默认迭代器,等同于 values()。 |
该类继承自 Internal-Iterable。