data-structure-typed 2.5.0 → 2.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +12984 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/package.json +3 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +4505 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +9731 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +347 -0
- package/CHANGELOG.md +5 -1
- package/README.md +124 -29
- package/dist/cjs/binary-tree.cjs +26282 -0
- package/dist/cjs/graph.cjs +5422 -0
- package/dist/cjs/hash.cjs +1310 -0
- package/dist/cjs/heap.cjs +1602 -0
- package/dist/cjs/index.cjs +31257 -14673
- package/dist/cjs/linked-list.cjs +4576 -0
- package/dist/cjs/matrix.cjs +1080 -0
- package/dist/cjs/priority-queue.cjs +1376 -0
- package/dist/cjs/queue.cjs +4264 -0
- package/dist/cjs/stack.cjs +907 -0
- package/dist/cjs/trie.cjs +1223 -0
- package/dist/cjs-legacy/binary-tree.cjs +26319 -0
- package/dist/cjs-legacy/graph.cjs +5420 -0
- package/dist/cjs-legacy/hash.cjs +1310 -0
- package/dist/cjs-legacy/heap.cjs +1599 -0
- package/dist/cjs-legacy/index.cjs +31268 -14679
- package/dist/cjs-legacy/linked-list.cjs +4582 -0
- package/dist/cjs-legacy/matrix.cjs +1083 -0
- package/dist/cjs-legacy/priority-queue.cjs +1374 -0
- package/dist/cjs-legacy/queue.cjs +4262 -0
- package/dist/cjs-legacy/stack.cjs +907 -0
- package/dist/cjs-legacy/trie.cjs +1222 -0
- package/dist/esm/binary-tree.mjs +26267 -0
- package/dist/esm/graph.mjs +5409 -0
- package/dist/esm/hash.mjs +1307 -0
- package/dist/esm/heap.mjs +1596 -0
- package/dist/esm/index.mjs +31254 -14674
- package/dist/esm/linked-list.mjs +4569 -0
- package/dist/esm/matrix.mjs +1076 -0
- package/dist/esm/priority-queue.mjs +1372 -0
- package/dist/esm/queue.mjs +4260 -0
- package/dist/esm/stack.mjs +905 -0
- package/dist/esm/trie.mjs +1220 -0
- package/dist/esm-legacy/binary-tree.mjs +26304 -0
- package/dist/esm-legacy/graph.mjs +5407 -0
- package/dist/esm-legacy/hash.mjs +1307 -0
- package/dist/esm-legacy/heap.mjs +1593 -0
- package/dist/esm-legacy/index.mjs +31265 -14680
- package/dist/esm-legacy/linked-list.mjs +4575 -0
- package/dist/esm-legacy/matrix.mjs +1079 -0
- package/dist/esm-legacy/priority-queue.mjs +1370 -0
- package/dist/esm-legacy/queue.mjs +4258 -0
- package/dist/esm-legacy/stack.mjs +905 -0
- package/dist/esm-legacy/trie.mjs +1219 -0
- package/dist/types/common/error.d.ts +9 -0
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/data-structures/base/index.d.ts +1 -0
- package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
- package/dist/types/data-structures/base/linear-base.d.ts +3 -3
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +288 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +336 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +618 -18
- package/dist/types/data-structures/binary-tree/bst.d.ts +676 -1
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +456 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +144 -1
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +3307 -399
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3285 -360
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2674 -325
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +3072 -287
- package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
- package/dist/types/data-structures/graph/directed-graph.d.ts +240 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +216 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +274 -10
- package/dist/types/data-structures/heap/heap.d.ts +336 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +411 -3
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +363 -3
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +434 -2
- package/dist/types/data-structures/matrix/matrix.d.ts +192 -0
- package/dist/types/data-structures/queue/deque.d.ts +364 -4
- package/dist/types/data-structures/queue/queue.d.ts +288 -0
- package/dist/types/data-structures/stack/stack.d.ts +240 -0
- package/dist/types/data-structures/trie/trie.d.ts +292 -4
- package/dist/types/interfaces/graph.d.ts +1 -1
- package/dist/types/types/common.d.ts +2 -2
- package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
- package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
- package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
- package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
- package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
- package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
- package/dist/types/types/utils/validate-type.d.ts +4 -4
- package/dist/umd/data-structure-typed.js +31196 -14608
- package/dist/umd/data-structure-typed.min.js +11 -5
- package/docs-site-docusaurus/README.md +41 -0
- package/docs-site-docusaurus/docs/api/README.md +52 -0
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +6644 -0
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +282 -0
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +2266 -0
- package/docs-site-docusaurus/docs/api/classes/BST.md +6293 -0
- package/docs-site-docusaurus/docs/api/classes/BSTNode.md +333 -0
- package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +455 -0
- package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +4647 -0
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +331 -0
- package/docs-site-docusaurus/docs/api/classes/Deque.md +2767 -0
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +2999 -0
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +2685 -0
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +221 -0
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +253 -0
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +21 -0
- package/docs-site-docusaurus/docs/api/classes/HashMap.md +1333 -0
- package/docs-site-docusaurus/docs/api/classes/Heap.md +1881 -0
- package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +800 -0
- package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +644 -0
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +1632 -0
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +1853 -0
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +1108 -0
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +156 -0
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +2824 -0
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +2929 -0
- package/docs-site-docusaurus/docs/api/classes/Matrix.md +1026 -0
- package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +1866 -0
- package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +1883 -0
- package/docs-site-docusaurus/docs/api/classes/MinHeap.md +1879 -0
- package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +1882 -0
- package/docs-site-docusaurus/docs/api/classes/Navigator.md +109 -0
- package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +1839 -0
- package/docs-site-docusaurus/docs/api/classes/Queue.md +2244 -0
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +6888 -0
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +372 -0
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +2897 -0
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +169 -0
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +1229 -0
- package/docs-site-docusaurus/docs/api/classes/Stack.md +1573 -0
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +1389 -0
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +1591 -0
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +1246 -0
- package/docs-site-docusaurus/docs/api/classes/Trie.md +1708 -0
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +199 -0
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +2979 -0
- package/docs-site-docusaurus/docs/guide/_category_.json +6 -0
- package/docs-site-docusaurus/docs/guide/architecture.md +615 -0
- package/docs-site-docusaurus/docs/guide/concepts.md +451 -0
- package/docs-site-docusaurus/docs/guide/faq.md +180 -0
- package/docs-site-docusaurus/docs/guide/guides.md +597 -0
- package/docs-site-docusaurus/docs/guide/installation.md +62 -0
- package/docs-site-docusaurus/docs/guide/integrations.md +825 -0
- package/docs-site-docusaurus/docs/guide/overview.md +645 -0
- package/docs-site-docusaurus/docs/guide/performance.md +835 -0
- package/docs-site-docusaurus/docs/guide/quick-start.md +104 -0
- package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
- package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
- package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
- package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
- package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
- package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
- package/docs-site-docusaurus/docusaurus.config.ts +159 -0
- package/docs-site-docusaurus/fix-mdx-generics.mjs +75 -0
- package/docs-site-docusaurus/package-lock.json +18667 -0
- package/docs-site-docusaurus/package.json +50 -0
- package/docs-site-docusaurus/prefix-class-to-methods.mjs +48 -0
- package/docs-site-docusaurus/sidebars.ts +23 -0
- package/docs-site-docusaurus/sort-protected.mjs +87 -0
- package/docs-site-docusaurus/src/css/custom.css +96 -0
- package/docs-site-docusaurus/src/pages/index.module.css +13 -0
- package/docs-site-docusaurus/src/pages/index.tsx +120 -0
- package/docs-site-docusaurus/src/pages/markdown-page.md +7 -0
- package/docs-site-docusaurus/src/theme/TOCItems/index.tsx +34 -0
- package/docs-site-docusaurus/static/.nojekyll +0 -0
- package/docs-site-docusaurus/static/img/docusaurus-social-card.jpg +0 -0
- package/docs-site-docusaurus/static/img/docusaurus.png +0 -0
- package/docs-site-docusaurus/static/img/favicon.ico +0 -0
- package/docs-site-docusaurus/static/img/favicon.png +0 -0
- package/docs-site-docusaurus/static/img/logo-180.png +0 -0
- package/docs-site-docusaurus/static/img/logo.jpg +0 -0
- package/docs-site-docusaurus/static/img/logo.png +0 -0
- package/docs-site-docusaurus/static/img/logo.svg +1 -0
- package/docs-site-docusaurus/static/img/og-image.png +0 -0
- package/docs-site-docusaurus/static/img/undraw_docusaurus_mountain.svg +171 -0
- package/docs-site-docusaurus/static/img/undraw_docusaurus_react.svg +170 -0
- package/docs-site-docusaurus/static/img/undraw_docusaurus_tree.svg +40 -0
- package/docs-site-docusaurus/static/llms.txt +37 -0
- package/docs-site-docusaurus/static/robots.txt +4 -0
- package/docs-site-docusaurus/typedoc.json +23 -0
- package/llms.txt +37 -0
- package/package.json +159 -55
- package/src/common/error.ts +19 -1
- package/src/common/index.ts +1 -1
- package/src/data-structures/base/index.ts +1 -0
- package/src/data-structures/base/iterable-element-base.ts +3 -2
- package/src/data-structures/base/iterable-entry-base.ts +8 -8
- package/src/data-structures/base/linear-base.ts +3 -3
- package/src/data-structures/binary-tree/avl-tree.ts +287 -0
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +327 -5
- package/src/data-structures/binary-tree/binary-tree.ts +581 -6
- package/src/data-structures/binary-tree/bst.ts +922 -7
- package/src/data-structures/binary-tree/red-black-tree.ts +453 -0
- package/src/data-structures/binary-tree/segment-tree.ts +139 -2
- package/src/data-structures/binary-tree/tree-map.ts +3300 -495
- package/src/data-structures/binary-tree/tree-multi-map.ts +3384 -563
- package/src/data-structures/binary-tree/tree-multi-set.ts +2757 -493
- package/src/data-structures/binary-tree/tree-set.ts +3122 -440
- package/src/data-structures/graph/abstract-graph.ts +6 -6
- package/src/data-structures/graph/directed-graph.ts +230 -0
- package/src/data-structures/graph/undirected-graph.ts +207 -0
- package/src/data-structures/hash/hash-map.ts +270 -19
- package/src/data-structures/heap/heap.ts +326 -4
- package/src/data-structures/heap/max-heap.ts +2 -2
- package/src/data-structures/linked-list/doubly-linked-list.ts +394 -3
- package/src/data-structures/linked-list/singly-linked-list.ts +348 -3
- package/src/data-structures/linked-list/skip-linked-list.ts +421 -7
- package/src/data-structures/matrix/matrix.ts +194 -10
- package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
- package/src/data-structures/queue/deque.ts +350 -5
- package/src/data-structures/queue/queue.ts +276 -0
- package/src/data-structures/stack/stack.ts +230 -0
- package/src/data-structures/trie/trie.ts +283 -7
- package/src/interfaces/graph.ts +1 -1
- package/src/types/common.ts +2 -2
- package/src/types/data-structures/binary-tree/bst.ts +1 -0
- package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
- package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
- package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
- package/src/types/data-structures/heap/heap.ts +1 -0
- package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
- package/src/types/utils/validate-type.ts +4 -4
- package/vercel.json +6 -0
- package/dist/leetcode/avl-tree-counter.mjs +0 -2957
- package/dist/leetcode/avl-tree-multi-map.mjs +0 -2889
- package/dist/leetcode/avl-tree.mjs +0 -2720
- package/dist/leetcode/binary-tree.mjs +0 -1594
- package/dist/leetcode/bst.mjs +0 -2398
- package/dist/leetcode/deque.mjs +0 -683
- package/dist/leetcode/directed-graph.mjs +0 -1733
- package/dist/leetcode/doubly-linked-list.mjs +0 -709
- package/dist/leetcode/hash-map.mjs +0 -493
- package/dist/leetcode/heap.mjs +0 -542
- package/dist/leetcode/max-heap.mjs +0 -375
- package/dist/leetcode/max-priority-queue.mjs +0 -383
- package/dist/leetcode/min-heap.mjs +0 -363
- package/dist/leetcode/min-priority-queue.mjs +0 -371
- package/dist/leetcode/priority-queue.mjs +0 -363
- package/dist/leetcode/queue.mjs +0 -943
- package/dist/leetcode/red-black-tree.mjs +0 -2765
- package/dist/leetcode/singly-linked-list.mjs +0 -754
- package/dist/leetcode/stack.mjs +0 -217
- package/dist/leetcode/tree-counter.mjs +0 -3039
- package/dist/leetcode/tree-multi-map.mjs +0 -2913
- package/dist/leetcode/trie.mjs +0 -413
- package/dist/leetcode/undirected-graph.mjs +0 -1650
|
@@ -93,14 +93,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
|
|
96
|
-
* @example
|
|
97
|
-
* // Check empty
|
|
98
|
-
* console.log(new TreeMap().isEmpty()); // true;
|
|
99
|
-
*/
|
|
100
|
-
isEmpty(): boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Set or overwrite a value for a key.
|
|
103
|
-
* @remarks Expected time O(log n)
|
|
104
96
|
|
|
105
97
|
|
|
106
98
|
|
|
@@ -148,35 +140,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
148
140
|
|
|
149
141
|
|
|
150
142
|
|
|
151
|
-
* @example
|
|
152
|
-
* // Sorted dictionary for a contact book
|
|
153
|
-
* const contacts = new TreeMap<string, string>([
|
|
154
|
-
* ['Bob', '555-0102'],
|
|
155
|
-
* ['Alice', '555-0101'],
|
|
156
|
-
* ['Charlie', '555-0103']
|
|
157
|
-
* ]);
|
|
158
|
-
*
|
|
159
|
-
* // Contacts are automatically sorted by name
|
|
160
|
-
* console.log([...contacts.keys()]); // ['Alice', 'Bob', 'Charlie'];
|
|
161
|
-
* console.log(contacts.get('Bob')); // '555-0102';
|
|
162
|
-
*
|
|
163
|
-
* // Find the first contact alphabetically after 'B'
|
|
164
|
-
* console.log(contacts.ceiling('B')); // ['Bob', '555-0102'];
|
|
165
|
-
*
|
|
166
|
-
* // Find contacts in range
|
|
167
|
-
* console.log(contacts.rangeSearch(['Alice', 'Bob'])); // [
|
|
168
|
-
* // ['Alice', '555-0101'],
|
|
169
|
-
* // ['Bob', '555-0102']
|
|
170
|
-
* // ];
|
|
171
|
-
*/
|
|
172
|
-
set(key: K, value: V | undefined): this;
|
|
173
|
-
/**
|
|
174
|
-
* Get the value under a key.
|
|
175
|
-
* @remarks Expected time O(log n)
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
143
|
|
|
181
144
|
|
|
182
145
|
|
|
@@ -222,22 +185,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
222
185
|
|
|
223
186
|
|
|
224
187
|
|
|
225
|
-
* @example
|
|
226
|
-
* // Configuration registry with typed lookups
|
|
227
|
-
* const config = new TreeMap<string, number>([
|
|
228
|
-
* ['maxRetries', 3],
|
|
229
|
-
* ['timeout', 5000],
|
|
230
|
-
* ['poolSize', 10]
|
|
231
|
-
* ]);
|
|
232
|
-
*
|
|
233
|
-
* console.log(config.get('timeout')); // 5000;
|
|
234
|
-
* console.log(config.get('missing')); // undefined;
|
|
235
|
-
* console.log(config.size); // 3;
|
|
236
|
-
*/
|
|
237
|
-
get(key: K): V | undefined;
|
|
238
|
-
/**
|
|
239
|
-
* Test whether a key exists.
|
|
240
|
-
* @remarks Expected time O(log n)
|
|
241
188
|
|
|
242
189
|
|
|
243
190
|
|
|
@@ -266,6 +213,14 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
266
213
|
|
|
267
214
|
|
|
268
215
|
|
|
216
|
+
* @example
|
|
217
|
+
* // Check empty
|
|
218
|
+
* console.log(new TreeMap().isEmpty()); // true;
|
|
219
|
+
*/
|
|
220
|
+
isEmpty(): boolean;
|
|
221
|
+
/**
|
|
222
|
+
* Set or overwrite a value for a key.
|
|
223
|
+
* @remarks Expected time O(log n)
|
|
269
224
|
|
|
270
225
|
|
|
271
226
|
|
|
@@ -287,22 +242,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
287
242
|
|
|
288
243
|
|
|
289
244
|
|
|
290
|
-
* @example
|
|
291
|
-
* // Feature flag checking
|
|
292
|
-
* const flags = new TreeMap<string, boolean>([
|
|
293
|
-
* ['darkMode', true],
|
|
294
|
-
* ['betaFeature', false],
|
|
295
|
-
* ['notifications', true]
|
|
296
|
-
* ]);
|
|
297
|
-
*
|
|
298
|
-
* console.log(flags.has('darkMode')); // true;
|
|
299
|
-
* console.log(flags.has('unknownFlag')); // false;
|
|
300
|
-
*/
|
|
301
|
-
has(key: K): boolean;
|
|
302
|
-
/**
|
|
303
|
-
* Delete a key.
|
|
304
|
-
* @returns `true` if the key existed; otherwise `false`.
|
|
305
|
-
* @remarks Expected time O(log n)
|
|
306
245
|
|
|
307
246
|
|
|
308
247
|
|
|
@@ -352,22 +291,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
352
291
|
|
|
353
292
|
|
|
354
293
|
|
|
355
|
-
* @example
|
|
356
|
-
* // Session management with expiry
|
|
357
|
-
* const sessions = new TreeMap<string, number>([
|
|
358
|
-
* ['sess_abc', Date.now()],
|
|
359
|
-
* ['sess_def', Date.now()],
|
|
360
|
-
* ['sess_ghi', Date.now()]
|
|
361
|
-
* ]);
|
|
362
|
-
*
|
|
363
|
-
* console.log(sessions.size); // 3;
|
|
364
|
-
* sessions.delete('sess_def');
|
|
365
|
-
* console.log(sessions.has('sess_def')); // false;
|
|
366
|
-
* console.log(sessions.size); // 2;
|
|
367
|
-
*/
|
|
368
|
-
delete(key: K): boolean;
|
|
369
|
-
/**
|
|
370
|
-
* Remove all entries.
|
|
371
294
|
|
|
372
295
|
|
|
373
296
|
|
|
@@ -406,15 +329,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
406
329
|
|
|
407
330
|
|
|
408
331
|
|
|
409
|
-
* @example
|
|
410
|
-
* // Remove all
|
|
411
|
-
* const tm = new TreeMap<number, string>([[1, 'a']]);
|
|
412
|
-
* tm.clear();
|
|
413
|
-
* console.log(tm.isEmpty()); // true;
|
|
414
|
-
*/
|
|
415
|
-
clear(): void;
|
|
416
|
-
/**
|
|
417
|
-
* Iterate over keys in ascending order.
|
|
418
332
|
|
|
419
333
|
|
|
420
334
|
|
|
@@ -453,17 +367,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
453
367
|
|
|
454
368
|
|
|
455
369
|
|
|
456
|
-
* @example
|
|
457
|
-
* // Get sorted keys
|
|
458
|
-
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a']]);
|
|
459
|
-
* console.log([...tm.keys()]); // [1, 3];
|
|
460
|
-
*/
|
|
461
|
-
keys(): IterableIterator<K>;
|
|
462
|
-
private _entryFromKey;
|
|
463
|
-
/**
|
|
464
|
-
* Iterate over values in ascending key order.
|
|
465
|
-
*
|
|
466
|
-
* Note: values may be `undefined` (TreeMap allows storing `undefined`, like native `Map`).
|
|
467
370
|
|
|
468
371
|
|
|
469
372
|
|
|
@@ -485,6 +388,31 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
485
388
|
|
|
486
389
|
|
|
487
390
|
|
|
391
|
+
* @example
|
|
392
|
+
* // Sorted dictionary for a contact book
|
|
393
|
+
* const contacts = new TreeMap<string, string>([
|
|
394
|
+
* ['Bob', '555-0102'],
|
|
395
|
+
* ['Alice', '555-0101'],
|
|
396
|
+
* ['Charlie', '555-0103']
|
|
397
|
+
* ]);
|
|
398
|
+
*
|
|
399
|
+
* // Contacts are automatically sorted by name
|
|
400
|
+
* console.log([...contacts.keys()]); // ['Alice', 'Bob', 'Charlie'];
|
|
401
|
+
* console.log(contacts.get('Bob')); // '555-0102';
|
|
402
|
+
*
|
|
403
|
+
* // Find the first contact alphabetically after 'B'
|
|
404
|
+
* console.log(contacts.ceiling('B')); // ['Bob', '555-0102'];
|
|
405
|
+
*
|
|
406
|
+
* // Find contacts in range
|
|
407
|
+
* console.log(contacts.rangeSearch(['Alice', 'Bob'])); // [
|
|
408
|
+
* // ['Alice', '555-0101'],
|
|
409
|
+
* // ['Bob', '555-0102']
|
|
410
|
+
* // ];
|
|
411
|
+
*/
|
|
412
|
+
set(key: K, value: V | undefined): this;
|
|
413
|
+
/**
|
|
414
|
+
* Get the value under a key.
|
|
415
|
+
* @remarks Expected time O(log n)
|
|
488
416
|
|
|
489
417
|
|
|
490
418
|
|
|
@@ -502,16 +430,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
502
430
|
|
|
503
431
|
|
|
504
432
|
|
|
505
|
-
* @example
|
|
506
|
-
* // Get values in key order
|
|
507
|
-
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
508
|
-
* console.log([...tm.values()]); // ['a', 'b'];
|
|
509
|
-
*/
|
|
510
|
-
values(): IterableIterator<V | undefined>;
|
|
511
|
-
/**
|
|
512
|
-
* Iterate over `[key, value]` entries in ascending key order.
|
|
513
|
-
*
|
|
514
|
-
* Note: values may be `undefined`.
|
|
515
433
|
|
|
516
434
|
|
|
517
435
|
|
|
@@ -550,17 +468,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
550
468
|
|
|
551
469
|
|
|
552
470
|
|
|
553
|
-
* @example
|
|
554
|
-
* // Iterate key-value pairs
|
|
555
|
-
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a'], [2, 'b']]);
|
|
556
|
-
* console.log([...tm.entries()]); // [[1, 'a'], [2, 'b'], [3, 'c']];
|
|
557
|
-
*/
|
|
558
|
-
entries(): IterableIterator<[K, V | undefined]>;
|
|
559
|
-
[Symbol.iterator](): IterableIterator<[K, V | undefined]>;
|
|
560
|
-
/**
|
|
561
|
-
* Visit each entry in ascending key order.
|
|
562
|
-
*
|
|
563
|
-
* Note: callback value may be `undefined`.
|
|
564
471
|
|
|
565
472
|
|
|
566
473
|
|
|
@@ -599,19 +506,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
599
506
|
|
|
600
507
|
|
|
601
508
|
|
|
602
|
-
* @example
|
|
603
|
-
* // Execute for each entry
|
|
604
|
-
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
605
|
-
* const pairs: string[] = [];
|
|
606
|
-
* tm.forEach((v, k) => pairs.push(`${k}:${v}`));
|
|
607
|
-
* console.log(pairs); // ['1:a', '2:b'];
|
|
608
|
-
*/
|
|
609
|
-
forEach(cb: (value: V | undefined, key: K, map: TreeMap<K, V>) => void, thisArg?: any): void;
|
|
610
|
-
/**
|
|
611
|
-
* Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
|
|
612
|
-
*
|
|
613
|
-
* This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
|
|
614
|
-
* @remarks Time O(n log n) expected, Space O(n)
|
|
615
509
|
|
|
616
510
|
|
|
617
511
|
|
|
@@ -650,18 +544,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
650
544
|
|
|
651
545
|
|
|
652
546
|
|
|
653
|
-
* @example
|
|
654
|
-
* // Transform entries
|
|
655
|
-
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
656
|
-
* const doubled = tm.map((v, k) => [k, (v ?? 0) * 2] as [number, number]);
|
|
657
|
-
* console.log([...doubled.values()]); // [20, 40];
|
|
658
|
-
*/
|
|
659
|
-
map<MK, MV>(callbackfn: TreeMapEntryCallback<K, V, [MK, MV], TreeMap<K, V>>, options?: Omit<TreeMapOptions<MK, MV>, 'toEntryFn'> & {
|
|
660
|
-
comparator?: (a: MK, b: MK) => number;
|
|
661
|
-
}, thisArg?: unknown): TreeMap<MK, MV>;
|
|
662
|
-
/**
|
|
663
|
-
* Create a new TreeMap containing only entries that satisfy the predicate.
|
|
664
|
-
* @remarks Time O(n log n) expected, Space O(n)
|
|
665
547
|
|
|
666
548
|
|
|
667
549
|
|
|
@@ -701,15 +583,21 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
701
583
|
|
|
702
584
|
|
|
703
585
|
* @example
|
|
704
|
-
* //
|
|
705
|
-
* const
|
|
706
|
-
*
|
|
707
|
-
*
|
|
586
|
+
* // Configuration registry with typed lookups
|
|
587
|
+
* const config = new TreeMap<string, number>([
|
|
588
|
+
* ['maxRetries', 3],
|
|
589
|
+
* ['timeout', 5000],
|
|
590
|
+
* ['poolSize', 10]
|
|
591
|
+
* ]);
|
|
592
|
+
*
|
|
593
|
+
* console.log(config.get('timeout')); // 5000;
|
|
594
|
+
* console.log(config.get('missing')); // undefined;
|
|
595
|
+
* console.log(config.size); // 3;
|
|
708
596
|
*/
|
|
709
|
-
|
|
597
|
+
get(key: K): V | undefined;
|
|
710
598
|
/**
|
|
711
|
-
*
|
|
712
|
-
* @remarks
|
|
599
|
+
* Test whether a key exists.
|
|
600
|
+
* @remarks Expected time O(log n)
|
|
713
601
|
|
|
714
602
|
|
|
715
603
|
|
|
@@ -748,15 +636,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
748
636
|
|
|
749
637
|
|
|
750
638
|
|
|
751
|
-
* @example
|
|
752
|
-
* // Aggregate values
|
|
753
|
-
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
754
|
-
* console.log(tm.reduce((acc, v) => acc + (v ?? 0), 0)); // 30;
|
|
755
|
-
*/
|
|
756
|
-
reduce<A>(callbackfn: TreeMapReduceCallback<K, V, A, TreeMap<K, V>>, initialValue: A): A;
|
|
757
|
-
/**
|
|
758
|
-
* Test whether all entries satisfy a predicate.
|
|
759
|
-
* @remarks Time O(n), Space O(1)
|
|
760
639
|
|
|
761
640
|
|
|
762
641
|
|
|
@@ -793,15 +672,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
793
672
|
|
|
794
673
|
|
|
795
674
|
|
|
796
|
-
* @example
|
|
797
|
-
* // Test all entries
|
|
798
|
-
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
799
|
-
* console.log(tm.every((v, k) => k > 0)); // true;
|
|
800
|
-
*/
|
|
801
|
-
every(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
|
|
802
|
-
/**
|
|
803
|
-
* Test whether any entry satisfies a predicate.
|
|
804
|
-
* @remarks Time O(n), Space O(1)
|
|
805
675
|
|
|
806
676
|
|
|
807
677
|
|
|
@@ -838,16 +708,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
838
708
|
|
|
839
709
|
|
|
840
710
|
|
|
841
|
-
* @example
|
|
842
|
-
* // Test any entry
|
|
843
|
-
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
844
|
-
* console.log(tm.some((v, k) => k === 2)); // true;
|
|
845
|
-
*/
|
|
846
|
-
some(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
|
|
847
|
-
/**
|
|
848
|
-
* Find the first entry that satisfies a predicate.
|
|
849
|
-
* @returns The first matching `[key, value]` tuple, or `undefined`.
|
|
850
|
-
* @remarks Time O(n), Space O(1)
|
|
851
711
|
|
|
852
712
|
|
|
853
713
|
|
|
@@ -884,15 +744,56 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
884
744
|
|
|
885
745
|
|
|
886
746
|
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
747
|
+
|
|
748
|
+
|
|
749
|
+
|
|
750
|
+
|
|
751
|
+
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
|
|
767
|
+
|
|
768
|
+
|
|
769
|
+
|
|
770
|
+
* @example
|
|
771
|
+
* // Feature flag checking
|
|
772
|
+
* const flags = new TreeMap<string, boolean>([
|
|
773
|
+
* ['darkMode', true],
|
|
774
|
+
* ['betaFeature', false],
|
|
775
|
+
* ['notifications', true]
|
|
776
|
+
* ]);
|
|
777
|
+
*
|
|
778
|
+
* console.log(flags.has('darkMode')); // true;
|
|
779
|
+
* console.log(flags.has('unknownFlag')); // false;
|
|
780
|
+
*/
|
|
781
|
+
has(key: K): boolean;
|
|
782
|
+
/**
|
|
783
|
+
* Delete a key.
|
|
784
|
+
* @returns `true` if the key existed; otherwise `false`.
|
|
785
|
+
* @remarks Expected time O(log n)
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
|
|
789
|
+
|
|
790
|
+
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
|
|
896
797
|
|
|
897
798
|
|
|
898
799
|
|
|
@@ -931,15 +832,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
931
832
|
|
|
932
833
|
|
|
933
834
|
|
|
934
|
-
* @example
|
|
935
|
-
* // Convert to array
|
|
936
|
-
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
937
|
-
* console.log(tm.toArray()); // [[1, 'a'], [2, 'b']];
|
|
938
|
-
*/
|
|
939
|
-
toArray(): Array<[K, V | undefined]>;
|
|
940
|
-
/**
|
|
941
|
-
* Print a human-friendly representation.
|
|
942
|
-
* @remarks Time O(n), Space O(n)
|
|
943
835
|
|
|
944
836
|
|
|
945
837
|
|
|
@@ -978,14 +870,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
978
870
|
|
|
979
871
|
|
|
980
872
|
|
|
981
|
-
* @example
|
|
982
|
-
* // Display tree
|
|
983
|
-
* const tm = new TreeMap<number, string>([[1, 'a']]);
|
|
984
|
-
* expect(() => tm.print()).not.toThrow();
|
|
985
|
-
*/
|
|
986
|
-
print(): void;
|
|
987
|
-
/**
|
|
988
|
-
* Smallest entry by key.
|
|
989
873
|
|
|
990
874
|
|
|
991
875
|
|
|
@@ -997,36 +881,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
997
881
|
|
|
998
882
|
|
|
999
883
|
|
|
1000
|
-
* @example
|
|
1001
|
-
* // Leaderboard with ranked scores
|
|
1002
|
-
* // Use score as key (descending), player name as value
|
|
1003
|
-
* const leaderboard = new TreeMap<number, string>([], {
|
|
1004
|
-
* comparator: (a, b) => b - a // descending
|
|
1005
|
-
* });
|
|
1006
|
-
*
|
|
1007
|
-
* leaderboard.set(1500, 'Alice');
|
|
1008
|
-
* leaderboard.set(2200, 'Bob');
|
|
1009
|
-
* leaderboard.set(1800, 'Charlie');
|
|
1010
|
-
* leaderboard.set(2500, 'Diana');
|
|
1011
|
-
*
|
|
1012
|
-
* // Top 3 players (first 3 in descending order)
|
|
1013
|
-
* const top3 = [...leaderboard.entries()].slice(0, 3);
|
|
1014
|
-
* console.log(top3); // [
|
|
1015
|
-
* // [2500, 'Diana'],
|
|
1016
|
-
* // [2200, 'Bob'],
|
|
1017
|
-
* // [1800, 'Charlie']
|
|
1018
|
-
* // ];
|
|
1019
|
-
*
|
|
1020
|
-
* // Highest scorer
|
|
1021
|
-
* console.log(leaderboard.first()); // [2500, 'Diana'];
|
|
1022
|
-
*
|
|
1023
|
-
* // Remove lowest scorer
|
|
1024
|
-
* console.log(leaderboard.pollLast()); // [1500, 'Alice'];
|
|
1025
|
-
* console.log(leaderboard.size); // 3;
|
|
1026
|
-
*/
|
|
1027
|
-
first(): [K, V | undefined] | undefined;
|
|
1028
|
-
/**
|
|
1029
|
-
* Largest entry by key.
|
|
1030
884
|
|
|
1031
885
|
|
|
1032
886
|
|
|
@@ -1038,20 +892,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1038
892
|
|
|
1039
893
|
|
|
1040
894
|
|
|
1041
|
-
* @example
|
|
1042
|
-
* // Access the maximum entry
|
|
1043
|
-
* const scores = new TreeMap<number, string>([
|
|
1044
|
-
* [85, 'Bob'],
|
|
1045
|
-
* [92, 'Alice'],
|
|
1046
|
-
* [78, 'Charlie']
|
|
1047
|
-
* ]);
|
|
1048
|
-
*
|
|
1049
|
-
* console.log(scores.last()); // [92, 'Alice'];
|
|
1050
|
-
* console.log(scores.first()); // [78, 'Charlie'];
|
|
1051
|
-
*/
|
|
1052
|
-
last(): [K, V | undefined] | undefined;
|
|
1053
|
-
/**
|
|
1054
|
-
* Remove and return the smallest entry.
|
|
1055
895
|
|
|
1056
896
|
|
|
1057
897
|
|
|
@@ -1063,22 +903,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1063
903
|
|
|
1064
904
|
|
|
1065
905
|
|
|
1066
|
-
* @example
|
|
1067
|
-
* // Process items from lowest priority
|
|
1068
|
-
* const tasks = new TreeMap<number, string>([
|
|
1069
|
-
* [3, 'Low'],
|
|
1070
|
-
* [1, 'Critical'],
|
|
1071
|
-
* [2, 'Medium']
|
|
1072
|
-
* ]);
|
|
1073
|
-
*
|
|
1074
|
-
* // Process lowest priority first
|
|
1075
|
-
* console.log(tasks.pollFirst()); // [1, 'Critical'];
|
|
1076
|
-
* console.log(tasks.pollFirst()); // [2, 'Medium'];
|
|
1077
|
-
* console.log(tasks.size); // 1;
|
|
1078
|
-
*/
|
|
1079
|
-
pollFirst(): [K, V | undefined] | undefined;
|
|
1080
|
-
/**
|
|
1081
|
-
* Remove and return the largest entry.
|
|
1082
906
|
|
|
1083
907
|
|
|
1084
908
|
|
|
@@ -1090,22 +914,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1090
914
|
|
|
1091
915
|
|
|
1092
916
|
|
|
1093
|
-
* @example
|
|
1094
|
-
* // Remove the maximum entry
|
|
1095
|
-
* const bids = new TreeMap<number, string>([
|
|
1096
|
-
* [100, 'Alice'],
|
|
1097
|
-
* [150, 'Bob'],
|
|
1098
|
-
* [120, 'Charlie']
|
|
1099
|
-
* ]);
|
|
1100
|
-
*
|
|
1101
|
-
* // Remove highest bid
|
|
1102
|
-
* console.log(bids.pollLast()); // [150, 'Bob'];
|
|
1103
|
-
* console.log(bids.size); // 2;
|
|
1104
|
-
* console.log(bids.last()); // [120, 'Charlie'];
|
|
1105
|
-
*/
|
|
1106
|
-
pollLast(): [K, V | undefined] | undefined;
|
|
1107
|
-
/**
|
|
1108
|
-
* Smallest entry whose key is >= the given key.
|
|
1109
917
|
|
|
1110
918
|
|
|
1111
919
|
|
|
@@ -1145,40 +953,27 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1145
953
|
|
|
1146
954
|
|
|
1147
955
|
* @example
|
|
1148
|
-
* //
|
|
1149
|
-
* const
|
|
1150
|
-
*
|
|
1151
|
-
*
|
|
1152
|
-
*
|
|
1153
|
-
*
|
|
1154
|
-
* const standup = new Date('2024-01-15T09:00:00Z');
|
|
1155
|
-
*
|
|
1156
|
-
* events.set(meeting, 'Team Meeting');
|
|
1157
|
-
* events.set(lunch, 'Lunch Break');
|
|
1158
|
-
* events.set(review, 'Code Review');
|
|
1159
|
-
* events.set(standup, 'Daily Standup');
|
|
1160
|
-
*
|
|
1161
|
-
* // Events are sorted chronologically
|
|
1162
|
-
* console.log([...events.values()]); // [
|
|
1163
|
-
* // 'Daily Standup',
|
|
1164
|
-
* // 'Team Meeting',
|
|
1165
|
-
* // 'Lunch Break',
|
|
1166
|
-
* // 'Code Review'
|
|
1167
|
-
* // ];
|
|
1168
|
-
*
|
|
1169
|
-
* // Next event after 11:00
|
|
1170
|
-
* const after11 = new Date('2024-01-15T11:00:00Z');
|
|
1171
|
-
* console.log(events.ceiling(after11)?.[1]); // 'Lunch Break';
|
|
956
|
+
* // Session management with expiry
|
|
957
|
+
* const sessions = new TreeMap<string, number>([
|
|
958
|
+
* ['sess_abc', Date.now()],
|
|
959
|
+
* ['sess_def', Date.now()],
|
|
960
|
+
* ['sess_ghi', Date.now()]
|
|
961
|
+
* ]);
|
|
1172
962
|
*
|
|
1173
|
-
* //
|
|
1174
|
-
*
|
|
1175
|
-
*
|
|
1176
|
-
*
|
|
1177
|
-
* console.log(window.map(([, v]) => v)); // ['Team Meeting', 'Lunch Break'];
|
|
963
|
+
* console.log(sessions.size); // 3;
|
|
964
|
+
* sessions.delete('sess_def');
|
|
965
|
+
* console.log(sessions.has('sess_def')); // false;
|
|
966
|
+
* console.log(sessions.size); // 2;
|
|
1178
967
|
*/
|
|
1179
|
-
|
|
968
|
+
delete(key: K): boolean;
|
|
1180
969
|
/**
|
|
1181
|
-
*
|
|
970
|
+
* Remove all entries.
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
|
|
1182
977
|
|
|
1183
978
|
|
|
1184
979
|
|
|
@@ -1217,25 +1012,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1217
1012
|
|
|
1218
1013
|
|
|
1219
1014
|
|
|
1220
|
-
* @example
|
|
1221
|
-
* // Find the largest key ≤ target
|
|
1222
|
-
* const versions = new TreeMap<number, string>([
|
|
1223
|
-
* [1, 'v1.0'],
|
|
1224
|
-
* [3, 'v3.0'],
|
|
1225
|
-
* [5, 'v5.0'],
|
|
1226
|
-
* [7, 'v7.0']
|
|
1227
|
-
* ]);
|
|
1228
|
-
*
|
|
1229
|
-
* // Largest version ≤ 4
|
|
1230
|
-
* console.log(versions.floor(4)); // [3, 'v3.0'];
|
|
1231
|
-
* // Largest version ≤ 5 (exact match)
|
|
1232
|
-
* console.log(versions.floor(5)); // [5, 'v5.0'];
|
|
1233
|
-
* // No version ≤ 0
|
|
1234
|
-
* console.log(versions.floor(0)); // undefined;
|
|
1235
|
-
*/
|
|
1236
|
-
floor(key: K): [K, V | undefined] | undefined;
|
|
1237
|
-
/**
|
|
1238
|
-
* Smallest entry whose key is > the given key.
|
|
1239
1015
|
|
|
1240
1016
|
|
|
1241
1017
|
|
|
@@ -1274,25 +1050,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1274
1050
|
|
|
1275
1051
|
|
|
1276
1052
|
|
|
1277
|
-
* @example
|
|
1278
|
-
* // Find the smallest key strictly > target
|
|
1279
|
-
* const prices = new TreeMap<number, string>([
|
|
1280
|
-
* [10, 'Basic'],
|
|
1281
|
-
* [25, 'Standard'],
|
|
1282
|
-
* [50, 'Premium'],
|
|
1283
|
-
* [100, 'Enterprise']
|
|
1284
|
-
* ]);
|
|
1285
|
-
*
|
|
1286
|
-
* // Next tier above $25
|
|
1287
|
-
* console.log(prices.higher(25)); // [50, 'Premium'];
|
|
1288
|
-
* // Next tier above $99
|
|
1289
|
-
* console.log(prices.higher(99)); // [100, 'Enterprise'];
|
|
1290
|
-
* // Nothing above $100
|
|
1291
|
-
* console.log(prices.higher(100)); // undefined;
|
|
1292
|
-
*/
|
|
1293
|
-
higher(key: K): [K, V | undefined] | undefined;
|
|
1294
|
-
/**
|
|
1295
|
-
* Largest entry whose key is < the given key.
|
|
1296
1053
|
|
|
1297
1054
|
|
|
1298
1055
|
|
|
@@ -1331,26 +1088,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1331
1088
|
|
|
1332
1089
|
|
|
1333
1090
|
|
|
1334
|
-
* @example
|
|
1335
|
-
* // Find the largest key strictly < target
|
|
1336
|
-
* const temps = new TreeMap<number, string>([
|
|
1337
|
-
* [0, 'Freezing'],
|
|
1338
|
-
* [20, 'Cool'],
|
|
1339
|
-
* [30, 'Warm'],
|
|
1340
|
-
* [40, 'Hot']
|
|
1341
|
-
* ]);
|
|
1342
|
-
*
|
|
1343
|
-
* // Largest reading below 30
|
|
1344
|
-
* console.log(temps.lower(30)); // [20, 'Cool'];
|
|
1345
|
-
* // Nothing below 0
|
|
1346
|
-
* console.log(temps.lower(0)); // undefined;
|
|
1347
|
-
*/
|
|
1348
|
-
lower(key: K): [K, V | undefined] | undefined;
|
|
1349
|
-
/**
|
|
1350
|
-
* Return all entries in a given key range.
|
|
1351
|
-
*
|
|
1352
|
-
* @param range `[low, high]`
|
|
1353
|
-
* @param options Inclusive/exclusive bounds (defaults to inclusive).
|
|
1354
1091
|
|
|
1355
1092
|
|
|
1356
1093
|
|
|
@@ -1390,28 +1127,3027 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1390
1127
|
|
|
1391
1128
|
|
|
1392
1129
|
* @example
|
|
1393
|
-
* //
|
|
1394
|
-
*
|
|
1395
|
-
*
|
|
1396
|
-
*
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1130
|
+
* // Remove all
|
|
1131
|
+
* const tm = new TreeMap<number, string>([[1, 'a']]);
|
|
1132
|
+
* tm.clear();
|
|
1133
|
+
* console.log(tm.isEmpty()); // true;
|
|
1134
|
+
*/
|
|
1135
|
+
clear(): void;
|
|
1136
|
+
/**
|
|
1137
|
+
* Iterate over keys in ascending order.
|
|
1138
|
+
|
|
1139
|
+
|
|
1140
|
+
|
|
1141
|
+
|
|
1142
|
+
|
|
1143
|
+
|
|
1144
|
+
|
|
1145
|
+
|
|
1146
|
+
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
|
|
1154
|
+
|
|
1155
|
+
|
|
1156
|
+
|
|
1157
|
+
|
|
1158
|
+
|
|
1159
|
+
|
|
1160
|
+
|
|
1161
|
+
|
|
1162
|
+
|
|
1163
|
+
|
|
1164
|
+
|
|
1165
|
+
|
|
1166
|
+
|
|
1167
|
+
|
|
1168
|
+
|
|
1169
|
+
|
|
1170
|
+
|
|
1171
|
+
|
|
1172
|
+
|
|
1173
|
+
|
|
1174
|
+
|
|
1175
|
+
|
|
1176
|
+
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
|
|
1180
|
+
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
|
|
1184
|
+
|
|
1185
|
+
|
|
1186
|
+
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
|
|
1192
|
+
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
|
|
1196
|
+
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
|
|
1210
|
+
|
|
1211
|
+
|
|
1212
|
+
|
|
1213
|
+
|
|
1214
|
+
|
|
1215
|
+
|
|
1216
|
+
|
|
1217
|
+
|
|
1218
|
+
|
|
1219
|
+
|
|
1220
|
+
|
|
1221
|
+
|
|
1222
|
+
|
|
1223
|
+
|
|
1224
|
+
|
|
1225
|
+
|
|
1226
|
+
|
|
1227
|
+
|
|
1228
|
+
|
|
1229
|
+
|
|
1230
|
+
|
|
1231
|
+
|
|
1232
|
+
|
|
1233
|
+
|
|
1234
|
+
|
|
1235
|
+
|
|
1236
|
+
|
|
1237
|
+
|
|
1238
|
+
|
|
1239
|
+
|
|
1240
|
+
|
|
1241
|
+
|
|
1242
|
+
|
|
1243
|
+
|
|
1244
|
+
|
|
1245
|
+
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
|
|
1268
|
+
|
|
1269
|
+
|
|
1270
|
+
|
|
1271
|
+
|
|
1272
|
+
|
|
1273
|
+
|
|
1274
|
+
|
|
1275
|
+
|
|
1276
|
+
|
|
1277
|
+
|
|
1278
|
+
|
|
1279
|
+
|
|
1280
|
+
|
|
1281
|
+
|
|
1282
|
+
|
|
1283
|
+
|
|
1284
|
+
|
|
1285
|
+
|
|
1286
|
+
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
|
|
1292
|
+
|
|
1293
|
+
|
|
1294
|
+
|
|
1295
|
+
|
|
1296
|
+
* @example
|
|
1297
|
+
* // Get sorted keys
|
|
1298
|
+
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a']]);
|
|
1299
|
+
* console.log([...tm.keys()]); // [1, 3];
|
|
1300
|
+
*/
|
|
1301
|
+
keys(): IterableIterator<K>;
|
|
1302
|
+
private _entryFromKey;
|
|
1303
|
+
/**
|
|
1304
|
+
* Iterate over values in ascending key order.
|
|
1305
|
+
*
|
|
1306
|
+
* Note: values may be `undefined` (TreeMap allows storing `undefined`, like native `Map`).
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
|
|
1317
|
+
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
|
|
1327
|
+
|
|
1328
|
+
|
|
1329
|
+
|
|
1330
|
+
|
|
1331
|
+
|
|
1332
|
+
|
|
1333
|
+
|
|
1334
|
+
|
|
1335
|
+
|
|
1336
|
+
|
|
1337
|
+
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
|
|
1341
|
+
|
|
1342
|
+
|
|
1343
|
+
|
|
1344
|
+
|
|
1345
|
+
|
|
1346
|
+
|
|
1347
|
+
|
|
1348
|
+
|
|
1349
|
+
|
|
1350
|
+
|
|
1351
|
+
|
|
1352
|
+
|
|
1353
|
+
|
|
1354
|
+
|
|
1355
|
+
|
|
1356
|
+
|
|
1357
|
+
|
|
1358
|
+
|
|
1359
|
+
|
|
1360
|
+
|
|
1361
|
+
|
|
1362
|
+
|
|
1363
|
+
|
|
1364
|
+
|
|
1365
|
+
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
|
|
1374
|
+
|
|
1375
|
+
|
|
1376
|
+
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
|
|
1380
|
+
|
|
1381
|
+
|
|
1382
|
+
|
|
1383
|
+
|
|
1384
|
+
|
|
1385
|
+
|
|
1386
|
+
|
|
1387
|
+
|
|
1388
|
+
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
|
|
1398
|
+
|
|
1399
|
+
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
|
|
1403
|
+
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
|
|
1407
|
+
|
|
1408
|
+
|
|
1409
|
+
|
|
1410
|
+
|
|
1411
|
+
|
|
1412
|
+
|
|
1413
|
+
|
|
1414
|
+
|
|
1415
|
+
|
|
1416
|
+
|
|
1417
|
+
|
|
1418
|
+
|
|
1419
|
+
|
|
1420
|
+
|
|
1421
|
+
|
|
1422
|
+
|
|
1423
|
+
|
|
1424
|
+
|
|
1425
|
+
|
|
1426
|
+
|
|
1427
|
+
|
|
1428
|
+
|
|
1429
|
+
|
|
1430
|
+
|
|
1431
|
+
|
|
1432
|
+
|
|
1433
|
+
|
|
1434
|
+
|
|
1435
|
+
|
|
1436
|
+
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
|
|
1443
|
+
|
|
1444
|
+
|
|
1445
|
+
|
|
1446
|
+
|
|
1447
|
+
|
|
1448
|
+
|
|
1449
|
+
|
|
1450
|
+
|
|
1451
|
+
|
|
1452
|
+
|
|
1453
|
+
|
|
1454
|
+
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
|
|
1458
|
+
|
|
1459
|
+
|
|
1460
|
+
|
|
1461
|
+
|
|
1462
|
+
|
|
1463
|
+
|
|
1464
|
+
|
|
1465
|
+
* @example
|
|
1466
|
+
* // Get values in key order
|
|
1467
|
+
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
1468
|
+
* console.log([...tm.values()]); // ['a', 'b'];
|
|
1469
|
+
*/
|
|
1470
|
+
values(): IterableIterator<V | undefined>;
|
|
1471
|
+
/**
|
|
1472
|
+
* Iterate over `[key, value]` entries in ascending key order.
|
|
1473
|
+
*
|
|
1474
|
+
* Note: values may be `undefined`.
|
|
1475
|
+
|
|
1476
|
+
|
|
1477
|
+
|
|
1478
|
+
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
|
|
1483
|
+
|
|
1484
|
+
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
|
|
1499
|
+
|
|
1500
|
+
|
|
1501
|
+
|
|
1502
|
+
|
|
1503
|
+
|
|
1504
|
+
|
|
1505
|
+
|
|
1506
|
+
|
|
1507
|
+
|
|
1508
|
+
|
|
1509
|
+
|
|
1510
|
+
|
|
1511
|
+
|
|
1512
|
+
|
|
1513
|
+
|
|
1514
|
+
|
|
1515
|
+
|
|
1516
|
+
|
|
1517
|
+
|
|
1518
|
+
|
|
1519
|
+
|
|
1520
|
+
|
|
1521
|
+
|
|
1522
|
+
|
|
1523
|
+
|
|
1524
|
+
|
|
1525
|
+
|
|
1526
|
+
|
|
1527
|
+
|
|
1528
|
+
|
|
1529
|
+
|
|
1530
|
+
|
|
1531
|
+
|
|
1532
|
+
|
|
1533
|
+
|
|
1534
|
+
|
|
1535
|
+
|
|
1536
|
+
|
|
1537
|
+
|
|
1538
|
+
|
|
1539
|
+
|
|
1540
|
+
|
|
1541
|
+
|
|
1542
|
+
|
|
1543
|
+
|
|
1544
|
+
|
|
1545
|
+
|
|
1546
|
+
|
|
1547
|
+
|
|
1548
|
+
|
|
1549
|
+
|
|
1550
|
+
|
|
1551
|
+
|
|
1552
|
+
|
|
1553
|
+
|
|
1554
|
+
|
|
1555
|
+
|
|
1556
|
+
|
|
1557
|
+
|
|
1558
|
+
|
|
1559
|
+
|
|
1560
|
+
|
|
1561
|
+
|
|
1562
|
+
|
|
1563
|
+
|
|
1564
|
+
|
|
1565
|
+
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
|
|
1569
|
+
|
|
1570
|
+
|
|
1571
|
+
|
|
1572
|
+
|
|
1573
|
+
|
|
1574
|
+
|
|
1575
|
+
|
|
1576
|
+
|
|
1577
|
+
|
|
1578
|
+
|
|
1579
|
+
|
|
1580
|
+
|
|
1581
|
+
|
|
1582
|
+
|
|
1583
|
+
|
|
1584
|
+
|
|
1585
|
+
|
|
1586
|
+
|
|
1587
|
+
|
|
1588
|
+
|
|
1589
|
+
|
|
1590
|
+
|
|
1591
|
+
|
|
1592
|
+
|
|
1593
|
+
|
|
1594
|
+
|
|
1595
|
+
|
|
1596
|
+
|
|
1597
|
+
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
|
|
1601
|
+
|
|
1602
|
+
|
|
1603
|
+
|
|
1604
|
+
|
|
1605
|
+
|
|
1606
|
+
|
|
1607
|
+
|
|
1608
|
+
|
|
1609
|
+
|
|
1610
|
+
|
|
1611
|
+
|
|
1612
|
+
|
|
1613
|
+
|
|
1614
|
+
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
|
|
1618
|
+
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
|
|
1623
|
+
|
|
1624
|
+
|
|
1625
|
+
|
|
1626
|
+
|
|
1627
|
+
|
|
1628
|
+
|
|
1629
|
+
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
|
|
1633
|
+
* @example
|
|
1634
|
+
* // Iterate key-value pairs
|
|
1635
|
+
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a'], [2, 'b']]);
|
|
1636
|
+
* console.log([...tm.entries()]); // [[1, 'a'], [2, 'b'], [3, 'c']];
|
|
1637
|
+
*/
|
|
1638
|
+
entries(): IterableIterator<[K, V | undefined]>;
|
|
1639
|
+
[Symbol.iterator](): IterableIterator<[K, V | undefined]>;
|
|
1640
|
+
/**
|
|
1641
|
+
* Visit each entry in ascending key order.
|
|
1642
|
+
*
|
|
1643
|
+
* Note: callback value may be `undefined`.
|
|
1644
|
+
|
|
1645
|
+
|
|
1646
|
+
|
|
1647
|
+
|
|
1648
|
+
|
|
1649
|
+
|
|
1650
|
+
|
|
1651
|
+
|
|
1652
|
+
|
|
1653
|
+
|
|
1654
|
+
|
|
1655
|
+
|
|
1656
|
+
|
|
1657
|
+
|
|
1658
|
+
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
|
|
1662
|
+
|
|
1663
|
+
|
|
1664
|
+
|
|
1665
|
+
|
|
1666
|
+
|
|
1667
|
+
|
|
1668
|
+
|
|
1669
|
+
|
|
1670
|
+
|
|
1671
|
+
|
|
1672
|
+
|
|
1673
|
+
|
|
1674
|
+
|
|
1675
|
+
|
|
1676
|
+
|
|
1677
|
+
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
|
|
1681
|
+
|
|
1682
|
+
|
|
1683
|
+
|
|
1684
|
+
|
|
1685
|
+
|
|
1686
|
+
|
|
1687
|
+
|
|
1688
|
+
|
|
1689
|
+
|
|
1690
|
+
|
|
1691
|
+
|
|
1692
|
+
|
|
1693
|
+
|
|
1694
|
+
|
|
1695
|
+
|
|
1696
|
+
|
|
1697
|
+
|
|
1698
|
+
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
|
|
1702
|
+
|
|
1703
|
+
|
|
1704
|
+
|
|
1705
|
+
|
|
1706
|
+
|
|
1707
|
+
|
|
1708
|
+
|
|
1709
|
+
|
|
1710
|
+
|
|
1711
|
+
|
|
1712
|
+
|
|
1713
|
+
|
|
1714
|
+
|
|
1715
|
+
|
|
1716
|
+
|
|
1717
|
+
|
|
1718
|
+
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
|
|
1722
|
+
|
|
1723
|
+
|
|
1724
|
+
|
|
1725
|
+
|
|
1726
|
+
|
|
1727
|
+
|
|
1728
|
+
|
|
1729
|
+
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
|
|
1733
|
+
|
|
1734
|
+
|
|
1735
|
+
|
|
1736
|
+
|
|
1737
|
+
|
|
1738
|
+
|
|
1739
|
+
|
|
1740
|
+
|
|
1741
|
+
|
|
1742
|
+
|
|
1743
|
+
|
|
1744
|
+
|
|
1745
|
+
|
|
1746
|
+
|
|
1747
|
+
|
|
1748
|
+
|
|
1749
|
+
|
|
1750
|
+
|
|
1751
|
+
|
|
1752
|
+
|
|
1753
|
+
|
|
1754
|
+
|
|
1755
|
+
|
|
1756
|
+
|
|
1757
|
+
|
|
1758
|
+
|
|
1759
|
+
|
|
1760
|
+
|
|
1761
|
+
|
|
1762
|
+
|
|
1763
|
+
|
|
1764
|
+
|
|
1765
|
+
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
|
|
1771
|
+
|
|
1772
|
+
|
|
1773
|
+
|
|
1774
|
+
|
|
1775
|
+
|
|
1776
|
+
|
|
1777
|
+
|
|
1778
|
+
|
|
1779
|
+
|
|
1780
|
+
|
|
1781
|
+
|
|
1782
|
+
|
|
1783
|
+
|
|
1784
|
+
|
|
1785
|
+
|
|
1786
|
+
|
|
1787
|
+
|
|
1788
|
+
|
|
1789
|
+
|
|
1790
|
+
|
|
1791
|
+
|
|
1792
|
+
|
|
1793
|
+
|
|
1794
|
+
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
|
|
1798
|
+
|
|
1799
|
+
|
|
1800
|
+
|
|
1801
|
+
|
|
1802
|
+
* @example
|
|
1803
|
+
* // Execute for each entry
|
|
1804
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
1805
|
+
* const pairs: string[] = [];
|
|
1806
|
+
* tm.forEach((v, k) => pairs.push(`${k}:${v}`));
|
|
1807
|
+
* console.log(pairs); // ['1:a', '2:b'];
|
|
1808
|
+
*/
|
|
1809
|
+
forEach(cb: (value: V | undefined, key: K, map: TreeMap<K, V>) => void, thisArg?: unknown): void;
|
|
1810
|
+
/**
|
|
1811
|
+
* Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
|
|
1812
|
+
*
|
|
1813
|
+
* This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
|
|
1814
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
1815
|
+
|
|
1816
|
+
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
|
|
1820
|
+
|
|
1821
|
+
|
|
1822
|
+
|
|
1823
|
+
|
|
1824
|
+
|
|
1825
|
+
|
|
1826
|
+
|
|
1827
|
+
|
|
1828
|
+
|
|
1829
|
+
|
|
1830
|
+
|
|
1831
|
+
|
|
1832
|
+
|
|
1833
|
+
|
|
1834
|
+
|
|
1835
|
+
|
|
1836
|
+
|
|
1837
|
+
|
|
1838
|
+
|
|
1839
|
+
|
|
1840
|
+
|
|
1841
|
+
|
|
1842
|
+
|
|
1843
|
+
|
|
1844
|
+
|
|
1845
|
+
|
|
1846
|
+
|
|
1847
|
+
|
|
1848
|
+
|
|
1849
|
+
|
|
1850
|
+
|
|
1851
|
+
|
|
1852
|
+
|
|
1853
|
+
|
|
1854
|
+
|
|
1855
|
+
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
|
|
1860
|
+
|
|
1861
|
+
|
|
1862
|
+
|
|
1863
|
+
|
|
1864
|
+
|
|
1865
|
+
|
|
1866
|
+
|
|
1867
|
+
|
|
1868
|
+
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
|
|
1872
|
+
|
|
1873
|
+
|
|
1874
|
+
|
|
1875
|
+
|
|
1876
|
+
|
|
1877
|
+
|
|
1878
|
+
|
|
1879
|
+
|
|
1880
|
+
|
|
1881
|
+
|
|
1882
|
+
|
|
1883
|
+
|
|
1884
|
+
|
|
1885
|
+
|
|
1886
|
+
|
|
1887
|
+
|
|
1888
|
+
|
|
1889
|
+
|
|
1890
|
+
|
|
1891
|
+
|
|
1892
|
+
|
|
1893
|
+
|
|
1894
|
+
|
|
1895
|
+
|
|
1896
|
+
|
|
1897
|
+
|
|
1898
|
+
|
|
1899
|
+
|
|
1900
|
+
|
|
1901
|
+
|
|
1902
|
+
|
|
1903
|
+
|
|
1904
|
+
|
|
1905
|
+
|
|
1906
|
+
|
|
1907
|
+
|
|
1908
|
+
|
|
1909
|
+
|
|
1910
|
+
|
|
1911
|
+
|
|
1912
|
+
|
|
1913
|
+
|
|
1914
|
+
|
|
1915
|
+
|
|
1916
|
+
|
|
1917
|
+
|
|
1918
|
+
|
|
1919
|
+
|
|
1920
|
+
|
|
1921
|
+
|
|
1922
|
+
|
|
1923
|
+
|
|
1924
|
+
|
|
1925
|
+
|
|
1926
|
+
|
|
1927
|
+
|
|
1928
|
+
|
|
1929
|
+
|
|
1930
|
+
|
|
1931
|
+
|
|
1932
|
+
|
|
1933
|
+
|
|
1934
|
+
|
|
1935
|
+
|
|
1936
|
+
|
|
1937
|
+
|
|
1938
|
+
|
|
1939
|
+
|
|
1940
|
+
|
|
1941
|
+
|
|
1942
|
+
|
|
1943
|
+
|
|
1944
|
+
|
|
1945
|
+
|
|
1946
|
+
|
|
1947
|
+
|
|
1948
|
+
|
|
1949
|
+
|
|
1950
|
+
|
|
1951
|
+
|
|
1952
|
+
|
|
1953
|
+
|
|
1954
|
+
|
|
1955
|
+
|
|
1956
|
+
|
|
1957
|
+
|
|
1958
|
+
|
|
1959
|
+
|
|
1960
|
+
|
|
1961
|
+
|
|
1962
|
+
|
|
1963
|
+
|
|
1964
|
+
|
|
1965
|
+
|
|
1966
|
+
|
|
1967
|
+
|
|
1968
|
+
|
|
1969
|
+
|
|
1970
|
+
|
|
1971
|
+
|
|
1972
|
+
|
|
1973
|
+
* @example
|
|
1974
|
+
* // Transform entries
|
|
1975
|
+
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
1976
|
+
* const doubled = tm.map((v, k) => [k, (v ?? 0) * 2] as [number, number]);
|
|
1977
|
+
* console.log([...doubled.values()]); // [20, 40];
|
|
1978
|
+
*/
|
|
1979
|
+
map<MK, MV>(callbackfn: TreeMapEntryCallback<K, V, [MK, MV], TreeMap<K, V>>, options?: Omit<TreeMapOptions<MK, MV>, 'toEntryFn'> & {
|
|
1980
|
+
comparator?: (a: MK, b: MK) => number;
|
|
1981
|
+
}, thisArg?: unknown): TreeMap<MK, MV>;
|
|
1982
|
+
/**
|
|
1983
|
+
* Create a new TreeMap containing only entries that satisfy the predicate.
|
|
1984
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
1985
|
+
|
|
1986
|
+
|
|
1987
|
+
|
|
1988
|
+
|
|
1989
|
+
|
|
1990
|
+
|
|
1991
|
+
|
|
1992
|
+
|
|
1993
|
+
|
|
1994
|
+
|
|
1995
|
+
|
|
1996
|
+
|
|
1997
|
+
|
|
1998
|
+
|
|
1999
|
+
|
|
2000
|
+
|
|
2001
|
+
|
|
2002
|
+
|
|
2003
|
+
|
|
2004
|
+
|
|
2005
|
+
|
|
2006
|
+
|
|
2007
|
+
|
|
2008
|
+
|
|
2009
|
+
|
|
2010
|
+
|
|
2011
|
+
|
|
2012
|
+
|
|
2013
|
+
|
|
2014
|
+
|
|
2015
|
+
|
|
2016
|
+
|
|
2017
|
+
|
|
2018
|
+
|
|
2019
|
+
|
|
2020
|
+
|
|
2021
|
+
|
|
2022
|
+
|
|
2023
|
+
|
|
2024
|
+
|
|
2025
|
+
|
|
2026
|
+
|
|
2027
|
+
|
|
2028
|
+
|
|
2029
|
+
|
|
2030
|
+
|
|
2031
|
+
|
|
2032
|
+
|
|
2033
|
+
|
|
2034
|
+
|
|
2035
|
+
|
|
2036
|
+
|
|
2037
|
+
|
|
2038
|
+
|
|
2039
|
+
|
|
2040
|
+
|
|
2041
|
+
|
|
2042
|
+
|
|
2043
|
+
|
|
2044
|
+
|
|
2045
|
+
|
|
2046
|
+
|
|
2047
|
+
|
|
2048
|
+
|
|
2049
|
+
|
|
2050
|
+
|
|
2051
|
+
|
|
2052
|
+
|
|
2053
|
+
|
|
2054
|
+
|
|
2055
|
+
|
|
2056
|
+
|
|
2057
|
+
|
|
2058
|
+
|
|
2059
|
+
|
|
2060
|
+
|
|
2061
|
+
|
|
2062
|
+
|
|
2063
|
+
|
|
2064
|
+
|
|
2065
|
+
|
|
2066
|
+
|
|
2067
|
+
|
|
2068
|
+
|
|
2069
|
+
|
|
2070
|
+
|
|
2071
|
+
|
|
2072
|
+
|
|
2073
|
+
|
|
2074
|
+
|
|
2075
|
+
|
|
2076
|
+
|
|
2077
|
+
|
|
2078
|
+
|
|
2079
|
+
|
|
2080
|
+
|
|
2081
|
+
|
|
2082
|
+
|
|
2083
|
+
|
|
2084
|
+
|
|
2085
|
+
|
|
2086
|
+
|
|
2087
|
+
|
|
2088
|
+
|
|
2089
|
+
|
|
2090
|
+
|
|
2091
|
+
|
|
2092
|
+
|
|
2093
|
+
|
|
2094
|
+
|
|
2095
|
+
|
|
2096
|
+
|
|
2097
|
+
|
|
2098
|
+
|
|
2099
|
+
|
|
2100
|
+
|
|
2101
|
+
|
|
2102
|
+
|
|
2103
|
+
|
|
2104
|
+
|
|
2105
|
+
|
|
2106
|
+
|
|
2107
|
+
|
|
2108
|
+
|
|
2109
|
+
|
|
2110
|
+
|
|
2111
|
+
|
|
2112
|
+
|
|
2113
|
+
|
|
2114
|
+
|
|
2115
|
+
|
|
2116
|
+
|
|
2117
|
+
|
|
2118
|
+
|
|
2119
|
+
|
|
2120
|
+
|
|
2121
|
+
|
|
2122
|
+
|
|
2123
|
+
|
|
2124
|
+
|
|
2125
|
+
|
|
2126
|
+
|
|
2127
|
+
|
|
2128
|
+
|
|
2129
|
+
|
|
2130
|
+
|
|
2131
|
+
|
|
2132
|
+
|
|
2133
|
+
|
|
2134
|
+
|
|
2135
|
+
|
|
2136
|
+
|
|
2137
|
+
|
|
2138
|
+
|
|
2139
|
+
|
|
2140
|
+
|
|
2141
|
+
|
|
2142
|
+
|
|
2143
|
+
* @example
|
|
2144
|
+
* // Filter entries
|
|
2145
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
|
|
2146
|
+
* const filtered = tm.filter((v, k) => k > 1);
|
|
2147
|
+
* console.log([...filtered.keys()]); // [2, 3];
|
|
2148
|
+
*/
|
|
2149
|
+
filter(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): TreeMap<K, V>;
|
|
2150
|
+
/**
|
|
2151
|
+
* Reduce entries into a single accumulator.
|
|
2152
|
+
* @remarks Time O(n), Space O(1)
|
|
2153
|
+
|
|
2154
|
+
|
|
2155
|
+
|
|
2156
|
+
|
|
2157
|
+
|
|
2158
|
+
|
|
2159
|
+
|
|
2160
|
+
|
|
2161
|
+
|
|
2162
|
+
|
|
2163
|
+
|
|
2164
|
+
|
|
2165
|
+
|
|
2166
|
+
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
|
|
2170
|
+
|
|
2171
|
+
|
|
2172
|
+
|
|
2173
|
+
|
|
2174
|
+
|
|
2175
|
+
|
|
2176
|
+
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
|
|
2180
|
+
|
|
2181
|
+
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
|
|
2185
|
+
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
|
|
2189
|
+
|
|
2190
|
+
|
|
2191
|
+
|
|
2192
|
+
|
|
2193
|
+
|
|
2194
|
+
|
|
2195
|
+
|
|
2196
|
+
|
|
2197
|
+
|
|
2198
|
+
|
|
2199
|
+
|
|
2200
|
+
|
|
2201
|
+
|
|
2202
|
+
|
|
2203
|
+
|
|
2204
|
+
|
|
2205
|
+
|
|
2206
|
+
|
|
2207
|
+
|
|
2208
|
+
|
|
2209
|
+
|
|
2210
|
+
|
|
2211
|
+
|
|
2212
|
+
|
|
2213
|
+
|
|
2214
|
+
|
|
2215
|
+
|
|
2216
|
+
|
|
2217
|
+
|
|
2218
|
+
|
|
2219
|
+
|
|
2220
|
+
|
|
2221
|
+
|
|
2222
|
+
|
|
2223
|
+
|
|
2224
|
+
|
|
2225
|
+
|
|
2226
|
+
|
|
2227
|
+
|
|
2228
|
+
|
|
2229
|
+
|
|
2230
|
+
|
|
2231
|
+
|
|
2232
|
+
|
|
2233
|
+
|
|
2234
|
+
|
|
2235
|
+
|
|
2236
|
+
|
|
2237
|
+
|
|
2238
|
+
|
|
2239
|
+
|
|
2240
|
+
|
|
2241
|
+
|
|
2242
|
+
|
|
2243
|
+
|
|
2244
|
+
|
|
2245
|
+
|
|
2246
|
+
|
|
2247
|
+
|
|
2248
|
+
|
|
2249
|
+
|
|
2250
|
+
|
|
2251
|
+
|
|
2252
|
+
|
|
2253
|
+
|
|
2254
|
+
|
|
2255
|
+
|
|
2256
|
+
|
|
2257
|
+
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
|
|
2261
|
+
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
|
|
2265
|
+
|
|
2266
|
+
|
|
2267
|
+
|
|
2268
|
+
|
|
2269
|
+
|
|
2270
|
+
|
|
2271
|
+
|
|
2272
|
+
|
|
2273
|
+
|
|
2274
|
+
|
|
2275
|
+
|
|
2276
|
+
|
|
2277
|
+
|
|
2278
|
+
|
|
2279
|
+
|
|
2280
|
+
|
|
2281
|
+
|
|
2282
|
+
|
|
2283
|
+
|
|
2284
|
+
|
|
2285
|
+
|
|
2286
|
+
|
|
2287
|
+
|
|
2288
|
+
|
|
2289
|
+
|
|
2290
|
+
|
|
2291
|
+
|
|
2292
|
+
|
|
2293
|
+
|
|
2294
|
+
|
|
2295
|
+
|
|
2296
|
+
|
|
2297
|
+
|
|
2298
|
+
|
|
2299
|
+
|
|
2300
|
+
|
|
2301
|
+
|
|
2302
|
+
|
|
2303
|
+
|
|
2304
|
+
|
|
2305
|
+
|
|
2306
|
+
|
|
2307
|
+
|
|
2308
|
+
|
|
2309
|
+
|
|
2310
|
+
|
|
2311
|
+
* @example
|
|
2312
|
+
* // Aggregate values
|
|
2313
|
+
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
2314
|
+
* console.log(tm.reduce((acc, v) => acc + (v ?? 0), 0)); // 30;
|
|
2315
|
+
*/
|
|
2316
|
+
reduce<A>(callbackfn: TreeMapReduceCallback<K, V, A, TreeMap<K, V>>, initialValue: A): A;
|
|
2317
|
+
/**
|
|
2318
|
+
* Test whether all entries satisfy a predicate.
|
|
2319
|
+
* @remarks Time O(n), Space O(1)
|
|
2320
|
+
|
|
2321
|
+
|
|
2322
|
+
|
|
2323
|
+
|
|
2324
|
+
|
|
2325
|
+
|
|
2326
|
+
|
|
2327
|
+
|
|
2328
|
+
|
|
2329
|
+
|
|
2330
|
+
|
|
2331
|
+
|
|
2332
|
+
|
|
2333
|
+
|
|
2334
|
+
|
|
2335
|
+
|
|
2336
|
+
|
|
2337
|
+
|
|
2338
|
+
|
|
2339
|
+
|
|
2340
|
+
|
|
2341
|
+
|
|
2342
|
+
|
|
2343
|
+
|
|
2344
|
+
|
|
2345
|
+
|
|
2346
|
+
|
|
2347
|
+
|
|
2348
|
+
|
|
2349
|
+
|
|
2350
|
+
|
|
2351
|
+
|
|
2352
|
+
|
|
2353
|
+
|
|
2354
|
+
|
|
2355
|
+
|
|
2356
|
+
|
|
2357
|
+
|
|
2358
|
+
|
|
2359
|
+
|
|
2360
|
+
|
|
2361
|
+
|
|
2362
|
+
|
|
2363
|
+
|
|
2364
|
+
|
|
2365
|
+
|
|
2366
|
+
|
|
2367
|
+
|
|
2368
|
+
|
|
2369
|
+
|
|
2370
|
+
|
|
2371
|
+
|
|
2372
|
+
|
|
2373
|
+
|
|
2374
|
+
|
|
2375
|
+
|
|
2376
|
+
|
|
2377
|
+
|
|
2378
|
+
|
|
2379
|
+
|
|
2380
|
+
|
|
2381
|
+
|
|
2382
|
+
|
|
2383
|
+
|
|
2384
|
+
|
|
2385
|
+
|
|
2386
|
+
|
|
2387
|
+
|
|
2388
|
+
|
|
2389
|
+
|
|
2390
|
+
|
|
2391
|
+
|
|
2392
|
+
|
|
2393
|
+
|
|
2394
|
+
|
|
2395
|
+
|
|
2396
|
+
|
|
2397
|
+
|
|
2398
|
+
|
|
2399
|
+
|
|
2400
|
+
|
|
2401
|
+
|
|
2402
|
+
|
|
2403
|
+
|
|
2404
|
+
|
|
2405
|
+
|
|
2406
|
+
|
|
2407
|
+
|
|
2408
|
+
|
|
2409
|
+
|
|
2410
|
+
|
|
2411
|
+
|
|
2412
|
+
|
|
2413
|
+
|
|
2414
|
+
|
|
2415
|
+
|
|
2416
|
+
|
|
2417
|
+
|
|
2418
|
+
|
|
2419
|
+
|
|
2420
|
+
|
|
2421
|
+
|
|
2422
|
+
|
|
2423
|
+
|
|
2424
|
+
|
|
2425
|
+
|
|
2426
|
+
|
|
2427
|
+
|
|
2428
|
+
|
|
2429
|
+
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
|
|
2433
|
+
|
|
2434
|
+
|
|
2435
|
+
|
|
2436
|
+
|
|
2437
|
+
|
|
2438
|
+
|
|
2439
|
+
|
|
2440
|
+
|
|
2441
|
+
|
|
2442
|
+
|
|
2443
|
+
|
|
2444
|
+
|
|
2445
|
+
|
|
2446
|
+
|
|
2447
|
+
|
|
2448
|
+
|
|
2449
|
+
|
|
2450
|
+
|
|
2451
|
+
|
|
2452
|
+
|
|
2453
|
+
|
|
2454
|
+
|
|
2455
|
+
|
|
2456
|
+
|
|
2457
|
+
|
|
2458
|
+
|
|
2459
|
+
|
|
2460
|
+
|
|
2461
|
+
|
|
2462
|
+
|
|
2463
|
+
|
|
2464
|
+
|
|
2465
|
+
|
|
2466
|
+
|
|
2467
|
+
|
|
2468
|
+
|
|
2469
|
+
|
|
2470
|
+
|
|
2471
|
+
|
|
2472
|
+
|
|
2473
|
+
|
|
2474
|
+
|
|
2475
|
+
|
|
2476
|
+
* @example
|
|
2477
|
+
* // Test all entries
|
|
2478
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
2479
|
+
* console.log(tm.every((v, k) => k > 0)); // true;
|
|
2480
|
+
*/
|
|
2481
|
+
every(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
|
|
2482
|
+
/**
|
|
2483
|
+
* Test whether any entry satisfies a predicate.
|
|
2484
|
+
* @remarks Time O(n), Space O(1)
|
|
2485
|
+
|
|
2486
|
+
|
|
2487
|
+
|
|
2488
|
+
|
|
2489
|
+
|
|
2490
|
+
|
|
2491
|
+
|
|
2492
|
+
|
|
2493
|
+
|
|
2494
|
+
|
|
2495
|
+
|
|
2496
|
+
|
|
2497
|
+
|
|
2498
|
+
|
|
2499
|
+
|
|
2500
|
+
|
|
2501
|
+
|
|
2502
|
+
|
|
2503
|
+
|
|
2504
|
+
|
|
2505
|
+
|
|
2506
|
+
|
|
2507
|
+
|
|
2508
|
+
|
|
2509
|
+
|
|
2510
|
+
|
|
2511
|
+
|
|
2512
|
+
|
|
2513
|
+
|
|
2514
|
+
|
|
2515
|
+
|
|
2516
|
+
|
|
2517
|
+
|
|
2518
|
+
|
|
2519
|
+
|
|
2520
|
+
|
|
2521
|
+
|
|
2522
|
+
|
|
2523
|
+
|
|
2524
|
+
|
|
2525
|
+
|
|
2526
|
+
|
|
2527
|
+
|
|
2528
|
+
|
|
2529
|
+
|
|
2530
|
+
|
|
2531
|
+
|
|
2532
|
+
|
|
2533
|
+
|
|
2534
|
+
|
|
2535
|
+
|
|
2536
|
+
|
|
2537
|
+
|
|
2538
|
+
|
|
2539
|
+
|
|
2540
|
+
|
|
2541
|
+
|
|
2542
|
+
|
|
2543
|
+
|
|
2544
|
+
|
|
2545
|
+
|
|
2546
|
+
|
|
2547
|
+
|
|
2548
|
+
|
|
2549
|
+
|
|
2550
|
+
|
|
2551
|
+
|
|
2552
|
+
|
|
2553
|
+
|
|
2554
|
+
|
|
2555
|
+
|
|
2556
|
+
|
|
2557
|
+
|
|
2558
|
+
|
|
2559
|
+
|
|
2560
|
+
|
|
2561
|
+
|
|
2562
|
+
|
|
2563
|
+
|
|
2564
|
+
|
|
2565
|
+
|
|
2566
|
+
|
|
2567
|
+
|
|
2568
|
+
|
|
2569
|
+
|
|
2570
|
+
|
|
2571
|
+
|
|
2572
|
+
|
|
2573
|
+
|
|
2574
|
+
|
|
2575
|
+
|
|
2576
|
+
|
|
2577
|
+
|
|
2578
|
+
|
|
2579
|
+
|
|
2580
|
+
|
|
2581
|
+
|
|
2582
|
+
|
|
2583
|
+
|
|
2584
|
+
|
|
2585
|
+
|
|
2586
|
+
|
|
2587
|
+
|
|
2588
|
+
|
|
2589
|
+
|
|
2590
|
+
|
|
2591
|
+
|
|
2592
|
+
|
|
2593
|
+
|
|
2594
|
+
|
|
2595
|
+
|
|
2596
|
+
|
|
2597
|
+
|
|
2598
|
+
|
|
2599
|
+
|
|
2600
|
+
|
|
2601
|
+
|
|
2602
|
+
|
|
2603
|
+
|
|
2604
|
+
|
|
2605
|
+
|
|
2606
|
+
|
|
2607
|
+
|
|
2608
|
+
|
|
2609
|
+
|
|
2610
|
+
|
|
2611
|
+
|
|
2612
|
+
|
|
2613
|
+
|
|
2614
|
+
|
|
2615
|
+
|
|
2616
|
+
|
|
2617
|
+
|
|
2618
|
+
|
|
2619
|
+
|
|
2620
|
+
|
|
2621
|
+
|
|
2622
|
+
|
|
2623
|
+
|
|
2624
|
+
|
|
2625
|
+
|
|
2626
|
+
|
|
2627
|
+
|
|
2628
|
+
|
|
2629
|
+
|
|
2630
|
+
|
|
2631
|
+
|
|
2632
|
+
|
|
2633
|
+
|
|
2634
|
+
|
|
2635
|
+
|
|
2636
|
+
|
|
2637
|
+
|
|
2638
|
+
|
|
2639
|
+
|
|
2640
|
+
|
|
2641
|
+
* @example
|
|
2642
|
+
* // Test any entry
|
|
2643
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
2644
|
+
* console.log(tm.some((v, k) => k === 2)); // true;
|
|
2645
|
+
*/
|
|
2646
|
+
some(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
|
|
2647
|
+
/**
|
|
2648
|
+
* Find the first entry that satisfies a predicate.
|
|
2649
|
+
* @returns The first matching `[key, value]` tuple, or `undefined`.
|
|
2650
|
+
* @remarks Time O(n), Space O(1)
|
|
2651
|
+
|
|
2652
|
+
|
|
2653
|
+
|
|
2654
|
+
|
|
2655
|
+
|
|
2656
|
+
|
|
2657
|
+
|
|
2658
|
+
|
|
2659
|
+
|
|
2660
|
+
|
|
2661
|
+
|
|
2662
|
+
|
|
2663
|
+
|
|
2664
|
+
|
|
2665
|
+
|
|
2666
|
+
|
|
2667
|
+
|
|
2668
|
+
|
|
2669
|
+
|
|
2670
|
+
|
|
2671
|
+
|
|
2672
|
+
|
|
2673
|
+
|
|
2674
|
+
|
|
2675
|
+
|
|
2676
|
+
|
|
2677
|
+
|
|
2678
|
+
|
|
2679
|
+
|
|
2680
|
+
|
|
2681
|
+
|
|
2682
|
+
|
|
2683
|
+
|
|
2684
|
+
|
|
2685
|
+
|
|
2686
|
+
|
|
2687
|
+
|
|
2688
|
+
|
|
2689
|
+
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
|
|
2693
|
+
|
|
2694
|
+
|
|
2695
|
+
|
|
2696
|
+
|
|
2697
|
+
|
|
2698
|
+
|
|
2699
|
+
|
|
2700
|
+
|
|
2701
|
+
|
|
2702
|
+
|
|
2703
|
+
|
|
2704
|
+
|
|
2705
|
+
|
|
2706
|
+
|
|
2707
|
+
|
|
2708
|
+
|
|
2709
|
+
|
|
2710
|
+
|
|
2711
|
+
|
|
2712
|
+
|
|
2713
|
+
|
|
2714
|
+
|
|
2715
|
+
|
|
2716
|
+
|
|
2717
|
+
|
|
2718
|
+
|
|
2719
|
+
|
|
2720
|
+
|
|
2721
|
+
|
|
2722
|
+
|
|
2723
|
+
|
|
2724
|
+
|
|
2725
|
+
|
|
2726
|
+
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
|
|
2730
|
+
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
|
|
2734
|
+
|
|
2735
|
+
|
|
2736
|
+
|
|
2737
|
+
|
|
2738
|
+
|
|
2739
|
+
|
|
2740
|
+
|
|
2741
|
+
|
|
2742
|
+
|
|
2743
|
+
|
|
2744
|
+
|
|
2745
|
+
|
|
2746
|
+
|
|
2747
|
+
|
|
2748
|
+
|
|
2749
|
+
|
|
2750
|
+
|
|
2751
|
+
|
|
2752
|
+
|
|
2753
|
+
|
|
2754
|
+
|
|
2755
|
+
|
|
2756
|
+
|
|
2757
|
+
|
|
2758
|
+
|
|
2759
|
+
|
|
2760
|
+
|
|
2761
|
+
|
|
2762
|
+
|
|
2763
|
+
|
|
2764
|
+
|
|
2765
|
+
|
|
2766
|
+
|
|
2767
|
+
|
|
2768
|
+
|
|
2769
|
+
|
|
2770
|
+
|
|
2771
|
+
|
|
2772
|
+
|
|
2773
|
+
|
|
2774
|
+
|
|
2775
|
+
|
|
2776
|
+
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
|
|
2781
|
+
|
|
2782
|
+
|
|
2783
|
+
|
|
2784
|
+
|
|
2785
|
+
|
|
2786
|
+
|
|
2787
|
+
|
|
2788
|
+
|
|
2789
|
+
|
|
2790
|
+
|
|
2791
|
+
|
|
2792
|
+
|
|
2793
|
+
|
|
2794
|
+
|
|
2795
|
+
|
|
2796
|
+
|
|
2797
|
+
|
|
2798
|
+
|
|
2799
|
+
|
|
2800
|
+
|
|
2801
|
+
|
|
2802
|
+
|
|
2803
|
+
|
|
2804
|
+
|
|
2805
|
+
|
|
2806
|
+
|
|
2807
|
+
* @example
|
|
2808
|
+
* // Find matching entry
|
|
2809
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
2810
|
+
* console.log(tm.find(v => v === 'b')?.[0]); // 2;
|
|
2811
|
+
*/
|
|
2812
|
+
find(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): [K, V | undefined] | undefined;
|
|
2813
|
+
/**
|
|
2814
|
+
* Materialize the map into an array of `[key, value]` tuples.
|
|
2815
|
+
* @remarks Time O(n), Space O(n)
|
|
2816
|
+
|
|
2817
|
+
|
|
2818
|
+
|
|
2819
|
+
|
|
2820
|
+
|
|
2821
|
+
|
|
2822
|
+
|
|
2823
|
+
|
|
2824
|
+
|
|
2825
|
+
|
|
2826
|
+
|
|
2827
|
+
|
|
2828
|
+
|
|
2829
|
+
|
|
2830
|
+
|
|
2831
|
+
|
|
2832
|
+
|
|
2833
|
+
|
|
2834
|
+
|
|
2835
|
+
|
|
2836
|
+
|
|
2837
|
+
|
|
2838
|
+
|
|
2839
|
+
|
|
2840
|
+
|
|
2841
|
+
|
|
2842
|
+
|
|
2843
|
+
|
|
2844
|
+
|
|
2845
|
+
|
|
2846
|
+
|
|
2847
|
+
|
|
2848
|
+
|
|
2849
|
+
|
|
2850
|
+
|
|
2851
|
+
|
|
2852
|
+
|
|
2853
|
+
|
|
2854
|
+
|
|
2855
|
+
|
|
2856
|
+
|
|
2857
|
+
|
|
2858
|
+
|
|
2859
|
+
|
|
2860
|
+
|
|
2861
|
+
|
|
2862
|
+
|
|
2863
|
+
|
|
2864
|
+
|
|
2865
|
+
|
|
2866
|
+
|
|
2867
|
+
|
|
2868
|
+
|
|
2869
|
+
|
|
2870
|
+
|
|
2871
|
+
|
|
2872
|
+
|
|
2873
|
+
|
|
2874
|
+
|
|
2875
|
+
|
|
2876
|
+
|
|
2877
|
+
|
|
2878
|
+
|
|
2879
|
+
|
|
2880
|
+
|
|
2881
|
+
|
|
2882
|
+
|
|
2883
|
+
|
|
2884
|
+
|
|
2885
|
+
|
|
2886
|
+
|
|
2887
|
+
|
|
2888
|
+
|
|
2889
|
+
|
|
2890
|
+
|
|
2891
|
+
|
|
2892
|
+
|
|
2893
|
+
|
|
2894
|
+
|
|
2895
|
+
|
|
2896
|
+
|
|
2897
|
+
|
|
2898
|
+
|
|
2899
|
+
|
|
2900
|
+
|
|
2901
|
+
|
|
2902
|
+
|
|
2903
|
+
|
|
2904
|
+
|
|
2905
|
+
|
|
2906
|
+
|
|
2907
|
+
|
|
2908
|
+
|
|
2909
|
+
|
|
2910
|
+
|
|
2911
|
+
|
|
2912
|
+
|
|
2913
|
+
|
|
2914
|
+
|
|
2915
|
+
|
|
2916
|
+
|
|
2917
|
+
|
|
2918
|
+
|
|
2919
|
+
|
|
2920
|
+
|
|
2921
|
+
|
|
2922
|
+
|
|
2923
|
+
|
|
2924
|
+
|
|
2925
|
+
|
|
2926
|
+
|
|
2927
|
+
|
|
2928
|
+
|
|
2929
|
+
|
|
2930
|
+
|
|
2931
|
+
|
|
2932
|
+
|
|
2933
|
+
|
|
2934
|
+
|
|
2935
|
+
|
|
2936
|
+
|
|
2937
|
+
|
|
2938
|
+
|
|
2939
|
+
|
|
2940
|
+
|
|
2941
|
+
|
|
2942
|
+
|
|
2943
|
+
|
|
2944
|
+
|
|
2945
|
+
|
|
2946
|
+
|
|
2947
|
+
|
|
2948
|
+
|
|
2949
|
+
|
|
2950
|
+
|
|
2951
|
+
|
|
2952
|
+
|
|
2953
|
+
|
|
2954
|
+
|
|
2955
|
+
|
|
2956
|
+
|
|
2957
|
+
|
|
2958
|
+
|
|
2959
|
+
|
|
2960
|
+
|
|
2961
|
+
|
|
2962
|
+
|
|
2963
|
+
|
|
2964
|
+
|
|
2965
|
+
|
|
2966
|
+
|
|
2967
|
+
|
|
2968
|
+
|
|
2969
|
+
|
|
2970
|
+
|
|
2971
|
+
|
|
2972
|
+
|
|
2973
|
+
|
|
2974
|
+
* @example
|
|
2975
|
+
* // Convert to array
|
|
2976
|
+
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
2977
|
+
* console.log(tm.toArray()); // [[1, 'a'], [2, 'b']];
|
|
2978
|
+
*/
|
|
2979
|
+
toArray(): Array<[K, V | undefined]>;
|
|
2980
|
+
/**
|
|
2981
|
+
* Print a human-friendly representation.
|
|
2982
|
+
* @remarks Time O(n), Space O(n)
|
|
2983
|
+
|
|
2984
|
+
|
|
2985
|
+
|
|
2986
|
+
|
|
2987
|
+
|
|
2988
|
+
|
|
2989
|
+
|
|
2990
|
+
|
|
2991
|
+
|
|
2992
|
+
|
|
2993
|
+
|
|
2994
|
+
|
|
2995
|
+
|
|
2996
|
+
|
|
2997
|
+
|
|
2998
|
+
|
|
2999
|
+
|
|
3000
|
+
|
|
3001
|
+
|
|
3002
|
+
|
|
3003
|
+
|
|
3004
|
+
|
|
3005
|
+
|
|
3006
|
+
|
|
3007
|
+
|
|
3008
|
+
|
|
3009
|
+
|
|
3010
|
+
|
|
3011
|
+
|
|
3012
|
+
|
|
3013
|
+
|
|
3014
|
+
|
|
3015
|
+
|
|
3016
|
+
|
|
3017
|
+
|
|
3018
|
+
|
|
3019
|
+
|
|
3020
|
+
|
|
3021
|
+
|
|
3022
|
+
|
|
3023
|
+
|
|
3024
|
+
|
|
3025
|
+
|
|
3026
|
+
|
|
3027
|
+
|
|
3028
|
+
|
|
3029
|
+
|
|
3030
|
+
|
|
3031
|
+
|
|
3032
|
+
|
|
3033
|
+
|
|
3034
|
+
|
|
3035
|
+
|
|
3036
|
+
|
|
3037
|
+
|
|
3038
|
+
|
|
3039
|
+
|
|
3040
|
+
|
|
3041
|
+
|
|
3042
|
+
|
|
3043
|
+
|
|
3044
|
+
|
|
3045
|
+
|
|
3046
|
+
|
|
3047
|
+
|
|
3048
|
+
|
|
3049
|
+
|
|
3050
|
+
|
|
3051
|
+
|
|
3052
|
+
|
|
3053
|
+
|
|
3054
|
+
|
|
3055
|
+
|
|
3056
|
+
|
|
3057
|
+
|
|
3058
|
+
|
|
3059
|
+
|
|
3060
|
+
|
|
3061
|
+
|
|
3062
|
+
|
|
3063
|
+
|
|
3064
|
+
|
|
3065
|
+
|
|
3066
|
+
|
|
3067
|
+
|
|
3068
|
+
|
|
3069
|
+
|
|
3070
|
+
|
|
3071
|
+
|
|
3072
|
+
|
|
3073
|
+
|
|
3074
|
+
|
|
3075
|
+
|
|
3076
|
+
|
|
3077
|
+
|
|
3078
|
+
|
|
3079
|
+
|
|
3080
|
+
|
|
3081
|
+
|
|
3082
|
+
|
|
3083
|
+
|
|
3084
|
+
|
|
3085
|
+
|
|
3086
|
+
|
|
3087
|
+
|
|
3088
|
+
|
|
3089
|
+
|
|
3090
|
+
|
|
3091
|
+
|
|
3092
|
+
|
|
3093
|
+
|
|
3094
|
+
|
|
3095
|
+
|
|
3096
|
+
|
|
3097
|
+
|
|
3098
|
+
|
|
3099
|
+
|
|
3100
|
+
|
|
3101
|
+
|
|
3102
|
+
|
|
3103
|
+
|
|
3104
|
+
|
|
3105
|
+
|
|
3106
|
+
|
|
3107
|
+
|
|
3108
|
+
|
|
3109
|
+
|
|
3110
|
+
|
|
3111
|
+
|
|
3112
|
+
|
|
3113
|
+
|
|
3114
|
+
|
|
3115
|
+
|
|
3116
|
+
|
|
3117
|
+
|
|
3118
|
+
|
|
3119
|
+
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
|
|
3128
|
+
|
|
3129
|
+
|
|
3130
|
+
|
|
3131
|
+
|
|
3132
|
+
|
|
3133
|
+
|
|
3134
|
+
|
|
3135
|
+
|
|
3136
|
+
|
|
3137
|
+
|
|
3138
|
+
|
|
3139
|
+
|
|
3140
|
+
|
|
3141
|
+
* @example
|
|
3142
|
+
* // Display tree
|
|
3143
|
+
* const tm = new TreeMap<number, string>([[1, 'a']]);
|
|
3144
|
+
* expect(() => tm.print()).not.toThrow();
|
|
3145
|
+
*/
|
|
3146
|
+
print(): void;
|
|
3147
|
+
/**
|
|
3148
|
+
* Smallest entry by key.
|
|
3149
|
+
|
|
3150
|
+
|
|
3151
|
+
|
|
3152
|
+
|
|
3153
|
+
|
|
3154
|
+
|
|
3155
|
+
|
|
3156
|
+
|
|
3157
|
+
|
|
3158
|
+
|
|
3159
|
+
|
|
3160
|
+
|
|
3161
|
+
|
|
3162
|
+
|
|
3163
|
+
|
|
3164
|
+
|
|
3165
|
+
|
|
3166
|
+
|
|
3167
|
+
|
|
3168
|
+
|
|
3169
|
+
|
|
3170
|
+
|
|
3171
|
+
|
|
3172
|
+
|
|
3173
|
+
|
|
3174
|
+
|
|
3175
|
+
|
|
3176
|
+
|
|
3177
|
+
|
|
3178
|
+
|
|
3179
|
+
|
|
3180
|
+
|
|
3181
|
+
|
|
3182
|
+
|
|
3183
|
+
|
|
3184
|
+
* @example
|
|
3185
|
+
* // Leaderboard with ranked scores
|
|
3186
|
+
* // Use score as key (descending), player name as value
|
|
3187
|
+
* const leaderboard = new TreeMap<number, string>([], {
|
|
3188
|
+
* comparator: (a, b) => b - a // descending
|
|
3189
|
+
* });
|
|
3190
|
+
*
|
|
3191
|
+
* leaderboard.set(1500, 'Alice');
|
|
3192
|
+
* leaderboard.set(2200, 'Bob');
|
|
3193
|
+
* leaderboard.set(1800, 'Charlie');
|
|
3194
|
+
* leaderboard.set(2500, 'Diana');
|
|
3195
|
+
*
|
|
3196
|
+
* // Top 3 players (first 3 in descending order)
|
|
3197
|
+
* const top3 = [...leaderboard.entries()].slice(0, 3);
|
|
3198
|
+
* console.log(top3); // [
|
|
3199
|
+
* // [2500, 'Diana'],
|
|
3200
|
+
* // [2200, 'Bob'],
|
|
3201
|
+
* // [1800, 'Charlie']
|
|
3202
|
+
* // ];
|
|
3203
|
+
*
|
|
3204
|
+
* // Highest scorer
|
|
3205
|
+
* console.log(leaderboard.first()); // [2500, 'Diana'];
|
|
3206
|
+
*
|
|
3207
|
+
* // Remove lowest scorer
|
|
3208
|
+
* console.log(leaderboard.pollLast()); // [1500, 'Alice'];
|
|
3209
|
+
* console.log(leaderboard.size); // 3;
|
|
3210
|
+
*/
|
|
3211
|
+
first(): [K, V | undefined] | undefined;
|
|
3212
|
+
/**
|
|
3213
|
+
* Largest entry by key.
|
|
3214
|
+
|
|
3215
|
+
|
|
3216
|
+
|
|
3217
|
+
|
|
3218
|
+
|
|
3219
|
+
|
|
3220
|
+
|
|
3221
|
+
|
|
3222
|
+
|
|
3223
|
+
|
|
3224
|
+
|
|
3225
|
+
|
|
3226
|
+
|
|
3227
|
+
|
|
3228
|
+
|
|
3229
|
+
|
|
3230
|
+
|
|
3231
|
+
|
|
3232
|
+
|
|
3233
|
+
|
|
3234
|
+
|
|
3235
|
+
|
|
3236
|
+
|
|
3237
|
+
|
|
3238
|
+
|
|
3239
|
+
|
|
3240
|
+
|
|
3241
|
+
|
|
3242
|
+
|
|
3243
|
+
|
|
3244
|
+
|
|
3245
|
+
|
|
3246
|
+
|
|
3247
|
+
|
|
3248
|
+
|
|
3249
|
+
* @example
|
|
3250
|
+
* // Access the maximum entry
|
|
3251
|
+
* const scores = new TreeMap<number, string>([
|
|
3252
|
+
* [85, 'Bob'],
|
|
3253
|
+
* [92, 'Alice'],
|
|
3254
|
+
* [78, 'Charlie']
|
|
3255
|
+
* ]);
|
|
3256
|
+
*
|
|
3257
|
+
* console.log(scores.last()); // [92, 'Alice'];
|
|
3258
|
+
* console.log(scores.first()); // [78, 'Charlie'];
|
|
3259
|
+
*/
|
|
3260
|
+
last(): [K, V | undefined] | undefined;
|
|
3261
|
+
/**
|
|
3262
|
+
* Remove and return the smallest entry.
|
|
3263
|
+
|
|
3264
|
+
|
|
3265
|
+
|
|
3266
|
+
|
|
3267
|
+
|
|
3268
|
+
|
|
3269
|
+
|
|
3270
|
+
|
|
3271
|
+
|
|
3272
|
+
|
|
3273
|
+
|
|
3274
|
+
|
|
3275
|
+
|
|
3276
|
+
|
|
3277
|
+
|
|
3278
|
+
|
|
3279
|
+
|
|
3280
|
+
|
|
3281
|
+
|
|
3282
|
+
|
|
3283
|
+
|
|
3284
|
+
|
|
3285
|
+
|
|
3286
|
+
|
|
3287
|
+
|
|
3288
|
+
|
|
3289
|
+
|
|
3290
|
+
|
|
3291
|
+
|
|
3292
|
+
|
|
3293
|
+
|
|
3294
|
+
|
|
3295
|
+
|
|
3296
|
+
|
|
3297
|
+
|
|
3298
|
+
* @example
|
|
3299
|
+
* // Process items from lowest priority
|
|
3300
|
+
* const tasks = new TreeMap<number, string>([
|
|
3301
|
+
* [3, 'Low'],
|
|
3302
|
+
* [1, 'Critical'],
|
|
3303
|
+
* [2, 'Medium']
|
|
3304
|
+
* ]);
|
|
3305
|
+
*
|
|
3306
|
+
* // Process lowest priority first
|
|
3307
|
+
* console.log(tasks.pollFirst()); // [1, 'Critical'];
|
|
3308
|
+
* console.log(tasks.pollFirst()); // [2, 'Medium'];
|
|
3309
|
+
* console.log(tasks.size); // 1;
|
|
3310
|
+
*/
|
|
3311
|
+
pollFirst(): [K, V | undefined] | undefined;
|
|
3312
|
+
/**
|
|
3313
|
+
* Remove and return the largest entry.
|
|
3314
|
+
|
|
3315
|
+
|
|
3316
|
+
|
|
3317
|
+
|
|
3318
|
+
|
|
3319
|
+
|
|
3320
|
+
|
|
3321
|
+
|
|
3322
|
+
|
|
3323
|
+
|
|
3324
|
+
|
|
3325
|
+
|
|
3326
|
+
|
|
3327
|
+
|
|
3328
|
+
|
|
3329
|
+
|
|
3330
|
+
|
|
3331
|
+
|
|
3332
|
+
|
|
3333
|
+
|
|
3334
|
+
|
|
3335
|
+
|
|
3336
|
+
|
|
3337
|
+
|
|
3338
|
+
|
|
3339
|
+
|
|
3340
|
+
|
|
3341
|
+
|
|
3342
|
+
|
|
3343
|
+
|
|
3344
|
+
|
|
3345
|
+
|
|
3346
|
+
|
|
3347
|
+
|
|
3348
|
+
|
|
3349
|
+
* @example
|
|
3350
|
+
* // Remove the maximum entry
|
|
3351
|
+
* const bids = new TreeMap<number, string>([
|
|
3352
|
+
* [100, 'Alice'],
|
|
3353
|
+
* [150, 'Bob'],
|
|
3354
|
+
* [120, 'Charlie']
|
|
3355
|
+
* ]);
|
|
3356
|
+
*
|
|
3357
|
+
* // Remove highest bid
|
|
3358
|
+
* console.log(bids.pollLast()); // [150, 'Bob'];
|
|
3359
|
+
* console.log(bids.size); // 2;
|
|
3360
|
+
* console.log(bids.last()); // [120, 'Charlie'];
|
|
3361
|
+
*/
|
|
3362
|
+
pollLast(): [K, V | undefined] | undefined;
|
|
3363
|
+
/**
|
|
3364
|
+
* Smallest entry whose key is >= the given key.
|
|
3365
|
+
|
|
3366
|
+
|
|
3367
|
+
|
|
3368
|
+
|
|
3369
|
+
|
|
3370
|
+
|
|
3371
|
+
|
|
3372
|
+
|
|
3373
|
+
|
|
3374
|
+
|
|
3375
|
+
|
|
3376
|
+
|
|
3377
|
+
|
|
3378
|
+
|
|
3379
|
+
|
|
3380
|
+
|
|
3381
|
+
|
|
3382
|
+
|
|
3383
|
+
|
|
3384
|
+
|
|
3385
|
+
|
|
3386
|
+
|
|
3387
|
+
|
|
3388
|
+
|
|
3389
|
+
|
|
3390
|
+
|
|
3391
|
+
|
|
3392
|
+
|
|
3393
|
+
|
|
3394
|
+
|
|
3395
|
+
|
|
3396
|
+
|
|
3397
|
+
|
|
3398
|
+
|
|
3399
|
+
|
|
3400
|
+
|
|
3401
|
+
|
|
3402
|
+
|
|
3403
|
+
|
|
3404
|
+
|
|
3405
|
+
|
|
3406
|
+
|
|
3407
|
+
|
|
3408
|
+
|
|
3409
|
+
|
|
3410
|
+
|
|
3411
|
+
|
|
3412
|
+
|
|
3413
|
+
|
|
3414
|
+
|
|
3415
|
+
|
|
3416
|
+
|
|
3417
|
+
|
|
3418
|
+
|
|
3419
|
+
|
|
3420
|
+
|
|
3421
|
+
|
|
3422
|
+
|
|
3423
|
+
|
|
3424
|
+
|
|
3425
|
+
|
|
3426
|
+
|
|
3427
|
+
|
|
3428
|
+
|
|
3429
|
+
|
|
3430
|
+
|
|
3431
|
+
|
|
3432
|
+
|
|
3433
|
+
|
|
3434
|
+
|
|
3435
|
+
|
|
3436
|
+
|
|
3437
|
+
|
|
3438
|
+
|
|
3439
|
+
|
|
3440
|
+
|
|
3441
|
+
|
|
3442
|
+
|
|
3443
|
+
|
|
3444
|
+
|
|
3445
|
+
|
|
3446
|
+
|
|
3447
|
+
|
|
3448
|
+
|
|
3449
|
+
|
|
3450
|
+
|
|
3451
|
+
|
|
3452
|
+
|
|
3453
|
+
|
|
3454
|
+
|
|
3455
|
+
|
|
3456
|
+
|
|
3457
|
+
|
|
3458
|
+
|
|
3459
|
+
|
|
3460
|
+
|
|
3461
|
+
|
|
3462
|
+
|
|
3463
|
+
|
|
3464
|
+
|
|
3465
|
+
|
|
3466
|
+
|
|
3467
|
+
|
|
3468
|
+
|
|
3469
|
+
|
|
3470
|
+
|
|
3471
|
+
|
|
3472
|
+
|
|
3473
|
+
|
|
3474
|
+
|
|
3475
|
+
|
|
3476
|
+
|
|
3477
|
+
|
|
3478
|
+
|
|
3479
|
+
|
|
3480
|
+
|
|
3481
|
+
|
|
3482
|
+
|
|
3483
|
+
|
|
3484
|
+
|
|
3485
|
+
|
|
3486
|
+
|
|
3487
|
+
|
|
3488
|
+
|
|
3489
|
+
|
|
3490
|
+
|
|
3491
|
+
|
|
3492
|
+
|
|
3493
|
+
|
|
3494
|
+
|
|
3495
|
+
|
|
3496
|
+
|
|
3497
|
+
|
|
3498
|
+
|
|
3499
|
+
* @example
|
|
3500
|
+
* // Event scheduler with time-based lookup
|
|
3501
|
+
* const events = new TreeMap<Date, string>();
|
|
3502
|
+
*
|
|
3503
|
+
* const meeting = new Date('2024-01-15T10:00:00Z');
|
|
3504
|
+
* const lunch = new Date('2024-01-15T12:00:00Z');
|
|
3505
|
+
* const review = new Date('2024-01-15T15:00:00Z');
|
|
3506
|
+
* const standup = new Date('2024-01-15T09:00:00Z');
|
|
3507
|
+
*
|
|
3508
|
+
* events.set(meeting, 'Team Meeting');
|
|
3509
|
+
* events.set(lunch, 'Lunch Break');
|
|
3510
|
+
* events.set(review, 'Code Review');
|
|
3511
|
+
* events.set(standup, 'Daily Standup');
|
|
3512
|
+
*
|
|
3513
|
+
* // Events are sorted chronologically
|
|
3514
|
+
* console.log([...events.values()]); // [
|
|
3515
|
+
* // 'Daily Standup',
|
|
3516
|
+
* // 'Team Meeting',
|
|
3517
|
+
* // 'Lunch Break',
|
|
3518
|
+
* // 'Code Review'
|
|
3519
|
+
* // ];
|
|
3520
|
+
*
|
|
3521
|
+
* // Next event after 11:00
|
|
3522
|
+
* const after11 = new Date('2024-01-15T11:00:00Z');
|
|
3523
|
+
* console.log(events.ceiling(after11)?.[1]); // 'Lunch Break';
|
|
3524
|
+
*
|
|
3525
|
+
* // Events between 9:30 and 13:00
|
|
3526
|
+
* const from = new Date('2024-01-15T09:30:00Z');
|
|
3527
|
+
* const to = new Date('2024-01-15T13:00:00Z');
|
|
3528
|
+
* const window = events.rangeSearch([from, to]);
|
|
3529
|
+
* console.log(window.map(([, v]) => v)); // ['Team Meeting', 'Lunch Break'];
|
|
3530
|
+
*/
|
|
3531
|
+
ceiling(key: K): [K, V | undefined] | undefined;
|
|
3532
|
+
/**
|
|
3533
|
+
* Largest entry whose key is <= the given key.
|
|
3534
|
+
|
|
3535
|
+
|
|
3536
|
+
|
|
3537
|
+
|
|
3538
|
+
|
|
3539
|
+
|
|
3540
|
+
|
|
3541
|
+
|
|
3542
|
+
|
|
3543
|
+
|
|
3544
|
+
|
|
3545
|
+
|
|
3546
|
+
|
|
3547
|
+
|
|
3548
|
+
|
|
3549
|
+
|
|
3550
|
+
|
|
3551
|
+
|
|
3552
|
+
|
|
3553
|
+
|
|
3554
|
+
|
|
3555
|
+
|
|
3556
|
+
|
|
3557
|
+
|
|
3558
|
+
|
|
3559
|
+
|
|
3560
|
+
|
|
3561
|
+
|
|
3562
|
+
|
|
3563
|
+
|
|
3564
|
+
|
|
3565
|
+
|
|
3566
|
+
|
|
3567
|
+
|
|
3568
|
+
|
|
3569
|
+
|
|
3570
|
+
|
|
3571
|
+
|
|
3572
|
+
|
|
3573
|
+
|
|
3574
|
+
|
|
3575
|
+
|
|
3576
|
+
|
|
3577
|
+
|
|
3578
|
+
|
|
3579
|
+
|
|
3580
|
+
|
|
3581
|
+
|
|
3582
|
+
|
|
3583
|
+
|
|
3584
|
+
|
|
3585
|
+
|
|
3586
|
+
|
|
3587
|
+
|
|
3588
|
+
|
|
3589
|
+
|
|
3590
|
+
|
|
3591
|
+
|
|
3592
|
+
|
|
3593
|
+
|
|
3594
|
+
|
|
3595
|
+
|
|
3596
|
+
|
|
3597
|
+
|
|
3598
|
+
|
|
3599
|
+
|
|
3600
|
+
|
|
3601
|
+
|
|
3602
|
+
|
|
3603
|
+
|
|
3604
|
+
|
|
3605
|
+
|
|
3606
|
+
|
|
3607
|
+
|
|
3608
|
+
|
|
3609
|
+
|
|
3610
|
+
|
|
3611
|
+
|
|
3612
|
+
|
|
3613
|
+
|
|
3614
|
+
|
|
3615
|
+
|
|
3616
|
+
|
|
3617
|
+
|
|
3618
|
+
|
|
3619
|
+
|
|
3620
|
+
|
|
3621
|
+
|
|
3622
|
+
|
|
3623
|
+
|
|
3624
|
+
|
|
3625
|
+
|
|
3626
|
+
|
|
3627
|
+
|
|
3628
|
+
|
|
3629
|
+
|
|
3630
|
+
|
|
3631
|
+
|
|
3632
|
+
|
|
3633
|
+
|
|
3634
|
+
|
|
3635
|
+
|
|
3636
|
+
|
|
3637
|
+
|
|
3638
|
+
|
|
3639
|
+
|
|
3640
|
+
|
|
3641
|
+
|
|
3642
|
+
|
|
3643
|
+
|
|
3644
|
+
|
|
3645
|
+
|
|
3646
|
+
|
|
3647
|
+
|
|
3648
|
+
|
|
3649
|
+
|
|
3650
|
+
|
|
3651
|
+
|
|
3652
|
+
|
|
3653
|
+
|
|
3654
|
+
|
|
3655
|
+
|
|
3656
|
+
|
|
3657
|
+
|
|
3658
|
+
|
|
3659
|
+
|
|
3660
|
+
|
|
3661
|
+
|
|
3662
|
+
|
|
3663
|
+
|
|
3664
|
+
|
|
3665
|
+
|
|
3666
|
+
|
|
3667
|
+
|
|
3668
|
+
* @example
|
|
3669
|
+
* // Find the largest key ≤ target
|
|
3670
|
+
* const versions = new TreeMap<number, string>([
|
|
3671
|
+
* [1, 'v1.0'],
|
|
3672
|
+
* [3, 'v3.0'],
|
|
3673
|
+
* [5, 'v5.0'],
|
|
3674
|
+
* [7, 'v7.0']
|
|
3675
|
+
* ]);
|
|
3676
|
+
*
|
|
3677
|
+
* // Largest version ≤ 4
|
|
3678
|
+
* console.log(versions.floor(4)); // [3, 'v3.0'];
|
|
3679
|
+
* // Largest version ≤ 5 (exact match)
|
|
3680
|
+
* console.log(versions.floor(5)); // [5, 'v5.0'];
|
|
3681
|
+
* // No version ≤ 0
|
|
3682
|
+
* console.log(versions.floor(0)); // undefined;
|
|
3683
|
+
*/
|
|
3684
|
+
floor(key: K): [K, V | undefined] | undefined;
|
|
3685
|
+
/**
|
|
3686
|
+
* Smallest entry whose key is > the given key.
|
|
3687
|
+
|
|
3688
|
+
|
|
3689
|
+
|
|
3690
|
+
|
|
3691
|
+
|
|
3692
|
+
|
|
3693
|
+
|
|
3694
|
+
|
|
3695
|
+
|
|
3696
|
+
|
|
3697
|
+
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
|
|
3701
|
+
|
|
3702
|
+
|
|
3703
|
+
|
|
3704
|
+
|
|
3705
|
+
|
|
3706
|
+
|
|
3707
|
+
|
|
3708
|
+
|
|
3709
|
+
|
|
3710
|
+
|
|
3711
|
+
|
|
3712
|
+
|
|
3713
|
+
|
|
3714
|
+
|
|
3715
|
+
|
|
3716
|
+
|
|
3717
|
+
|
|
3718
|
+
|
|
3719
|
+
|
|
3720
|
+
|
|
3721
|
+
|
|
3722
|
+
|
|
3723
|
+
|
|
3724
|
+
|
|
3725
|
+
|
|
3726
|
+
|
|
3727
|
+
|
|
3728
|
+
|
|
3729
|
+
|
|
3730
|
+
|
|
3731
|
+
|
|
3732
|
+
|
|
3733
|
+
|
|
3734
|
+
|
|
3735
|
+
|
|
3736
|
+
|
|
3737
|
+
|
|
3738
|
+
|
|
3739
|
+
|
|
3740
|
+
|
|
3741
|
+
|
|
3742
|
+
|
|
3743
|
+
|
|
3744
|
+
|
|
3745
|
+
|
|
3746
|
+
|
|
3747
|
+
|
|
3748
|
+
|
|
3749
|
+
|
|
3750
|
+
|
|
3751
|
+
|
|
3752
|
+
|
|
3753
|
+
|
|
3754
|
+
|
|
3755
|
+
|
|
3756
|
+
|
|
3757
|
+
|
|
3758
|
+
|
|
3759
|
+
|
|
3760
|
+
|
|
3761
|
+
|
|
3762
|
+
|
|
3763
|
+
|
|
3764
|
+
|
|
3765
|
+
|
|
3766
|
+
|
|
3767
|
+
|
|
3768
|
+
|
|
3769
|
+
|
|
3770
|
+
|
|
3771
|
+
|
|
3772
|
+
|
|
3773
|
+
|
|
3774
|
+
|
|
3775
|
+
|
|
3776
|
+
|
|
3777
|
+
|
|
3778
|
+
|
|
3779
|
+
|
|
3780
|
+
|
|
3781
|
+
|
|
3782
|
+
|
|
3783
|
+
|
|
3784
|
+
|
|
3785
|
+
|
|
3786
|
+
|
|
3787
|
+
|
|
3788
|
+
|
|
3789
|
+
|
|
3790
|
+
|
|
3791
|
+
|
|
3792
|
+
|
|
3793
|
+
|
|
3794
|
+
|
|
3795
|
+
|
|
3796
|
+
|
|
3797
|
+
|
|
3798
|
+
|
|
3799
|
+
|
|
3800
|
+
|
|
3801
|
+
|
|
3802
|
+
|
|
3803
|
+
|
|
3804
|
+
|
|
3805
|
+
|
|
3806
|
+
|
|
3807
|
+
|
|
3808
|
+
|
|
3809
|
+
|
|
3810
|
+
|
|
3811
|
+
|
|
3812
|
+
|
|
3813
|
+
|
|
3814
|
+
|
|
3815
|
+
|
|
3816
|
+
|
|
3817
|
+
|
|
3818
|
+
|
|
3819
|
+
|
|
3820
|
+
|
|
3821
|
+
* @example
|
|
3822
|
+
* // Find the smallest key strictly > target
|
|
3823
|
+
* const prices = new TreeMap<number, string>([
|
|
3824
|
+
* [10, 'Basic'],
|
|
3825
|
+
* [25, 'Standard'],
|
|
3826
|
+
* [50, 'Premium'],
|
|
3827
|
+
* [100, 'Enterprise']
|
|
3828
|
+
* ]);
|
|
3829
|
+
*
|
|
3830
|
+
* // Next tier above $25
|
|
3831
|
+
* console.log(prices.higher(25)); // [50, 'Premium'];
|
|
3832
|
+
* // Next tier above $99
|
|
3833
|
+
* console.log(prices.higher(99)); // [100, 'Enterprise'];
|
|
3834
|
+
* // Nothing above $100
|
|
3835
|
+
* console.log(prices.higher(100)); // undefined;
|
|
3836
|
+
*/
|
|
3837
|
+
higher(key: K): [K, V | undefined] | undefined;
|
|
3838
|
+
/**
|
|
3839
|
+
* Largest entry whose key is < the given key.
|
|
3840
|
+
|
|
3841
|
+
|
|
3842
|
+
|
|
3843
|
+
|
|
3844
|
+
|
|
3845
|
+
|
|
3846
|
+
|
|
3847
|
+
|
|
3848
|
+
|
|
3849
|
+
|
|
3850
|
+
|
|
3851
|
+
|
|
3852
|
+
|
|
3853
|
+
|
|
3854
|
+
|
|
3855
|
+
|
|
3856
|
+
|
|
3857
|
+
|
|
3858
|
+
|
|
3859
|
+
|
|
3860
|
+
|
|
3861
|
+
|
|
3862
|
+
|
|
3863
|
+
|
|
3864
|
+
|
|
3865
|
+
|
|
3866
|
+
|
|
3867
|
+
|
|
3868
|
+
|
|
3869
|
+
|
|
3870
|
+
|
|
3871
|
+
|
|
3872
|
+
|
|
3873
|
+
|
|
3874
|
+
|
|
3875
|
+
|
|
3876
|
+
|
|
3877
|
+
|
|
3878
|
+
|
|
3879
|
+
|
|
3880
|
+
|
|
3881
|
+
|
|
3882
|
+
|
|
3883
|
+
|
|
3884
|
+
|
|
3885
|
+
|
|
3886
|
+
|
|
3887
|
+
|
|
3888
|
+
|
|
3889
|
+
|
|
3890
|
+
|
|
3891
|
+
|
|
3892
|
+
|
|
3893
|
+
|
|
3894
|
+
|
|
3895
|
+
|
|
3896
|
+
|
|
3897
|
+
|
|
3898
|
+
|
|
3899
|
+
|
|
3900
|
+
|
|
3901
|
+
|
|
3902
|
+
|
|
3903
|
+
|
|
3904
|
+
|
|
3905
|
+
|
|
3906
|
+
|
|
3907
|
+
|
|
3908
|
+
|
|
3909
|
+
|
|
3910
|
+
|
|
3911
|
+
|
|
3912
|
+
|
|
3913
|
+
|
|
3914
|
+
|
|
3915
|
+
|
|
3916
|
+
|
|
3917
|
+
|
|
3918
|
+
|
|
3919
|
+
|
|
3920
|
+
|
|
3921
|
+
|
|
3922
|
+
|
|
3923
|
+
|
|
3924
|
+
|
|
3925
|
+
|
|
3926
|
+
|
|
3927
|
+
|
|
3928
|
+
|
|
3929
|
+
|
|
3930
|
+
|
|
3931
|
+
|
|
3932
|
+
|
|
3933
|
+
|
|
3934
|
+
|
|
3935
|
+
|
|
3936
|
+
|
|
3937
|
+
|
|
3938
|
+
|
|
3939
|
+
|
|
3940
|
+
|
|
3941
|
+
|
|
3942
|
+
|
|
3943
|
+
|
|
3944
|
+
|
|
3945
|
+
|
|
3946
|
+
|
|
3947
|
+
|
|
3948
|
+
|
|
3949
|
+
|
|
3950
|
+
|
|
3951
|
+
|
|
3952
|
+
|
|
3953
|
+
|
|
3954
|
+
|
|
3955
|
+
|
|
3956
|
+
|
|
3957
|
+
|
|
3958
|
+
|
|
3959
|
+
|
|
3960
|
+
|
|
3961
|
+
|
|
3962
|
+
|
|
3963
|
+
|
|
3964
|
+
|
|
3965
|
+
|
|
3966
|
+
|
|
3967
|
+
|
|
3968
|
+
|
|
3969
|
+
|
|
3970
|
+
|
|
3971
|
+
|
|
3972
|
+
|
|
3973
|
+
|
|
3974
|
+
* @example
|
|
3975
|
+
* // Find the largest key strictly < target
|
|
3976
|
+
* const temps = new TreeMap<number, string>([
|
|
3977
|
+
* [0, 'Freezing'],
|
|
3978
|
+
* [20, 'Cool'],
|
|
3979
|
+
* [30, 'Warm'],
|
|
3980
|
+
* [40, 'Hot']
|
|
3981
|
+
* ]);
|
|
3982
|
+
*
|
|
3983
|
+
* // Largest reading below 30
|
|
3984
|
+
* console.log(temps.lower(30)); // [20, 'Cool'];
|
|
3985
|
+
* // Nothing below 0
|
|
3986
|
+
* console.log(temps.lower(0)); // undefined;
|
|
3987
|
+
*/
|
|
3988
|
+
lower(key: K): [K, V | undefined] | undefined;
|
|
3989
|
+
/**
|
|
3990
|
+
* Return all entries in a given key range.
|
|
3991
|
+
*
|
|
3992
|
+
* @param range `[low, high]`
|
|
3993
|
+
* @param options Inclusive/exclusive bounds (defaults to inclusive).
|
|
3994
|
+
|
|
3995
|
+
|
|
3996
|
+
|
|
3997
|
+
|
|
3998
|
+
|
|
3999
|
+
|
|
4000
|
+
|
|
4001
|
+
|
|
4002
|
+
|
|
4003
|
+
|
|
4004
|
+
|
|
4005
|
+
|
|
4006
|
+
|
|
4007
|
+
|
|
4008
|
+
|
|
4009
|
+
|
|
4010
|
+
|
|
4011
|
+
|
|
4012
|
+
|
|
4013
|
+
|
|
4014
|
+
|
|
4015
|
+
|
|
4016
|
+
|
|
4017
|
+
|
|
4018
|
+
|
|
4019
|
+
|
|
4020
|
+
|
|
4021
|
+
|
|
4022
|
+
|
|
4023
|
+
|
|
4024
|
+
|
|
4025
|
+
|
|
4026
|
+
|
|
4027
|
+
|
|
4028
|
+
|
|
4029
|
+
|
|
4030
|
+
|
|
4031
|
+
|
|
4032
|
+
|
|
4033
|
+
|
|
4034
|
+
|
|
4035
|
+
|
|
4036
|
+
|
|
4037
|
+
|
|
4038
|
+
|
|
4039
|
+
|
|
4040
|
+
|
|
4041
|
+
|
|
4042
|
+
|
|
4043
|
+
|
|
4044
|
+
|
|
4045
|
+
|
|
4046
|
+
|
|
4047
|
+
|
|
4048
|
+
|
|
4049
|
+
|
|
4050
|
+
|
|
4051
|
+
|
|
4052
|
+
|
|
4053
|
+
|
|
4054
|
+
|
|
4055
|
+
|
|
4056
|
+
|
|
4057
|
+
|
|
4058
|
+
|
|
4059
|
+
|
|
4060
|
+
|
|
4061
|
+
|
|
4062
|
+
|
|
4063
|
+
|
|
4064
|
+
|
|
4065
|
+
|
|
4066
|
+
|
|
4067
|
+
|
|
4068
|
+
|
|
4069
|
+
|
|
4070
|
+
|
|
4071
|
+
|
|
4072
|
+
|
|
4073
|
+
|
|
4074
|
+
|
|
4075
|
+
|
|
4076
|
+
|
|
4077
|
+
|
|
4078
|
+
|
|
4079
|
+
|
|
4080
|
+
|
|
4081
|
+
|
|
4082
|
+
|
|
4083
|
+
|
|
4084
|
+
|
|
4085
|
+
|
|
4086
|
+
|
|
4087
|
+
|
|
4088
|
+
|
|
4089
|
+
|
|
4090
|
+
|
|
4091
|
+
|
|
4092
|
+
|
|
4093
|
+
|
|
4094
|
+
|
|
4095
|
+
|
|
4096
|
+
|
|
4097
|
+
|
|
4098
|
+
|
|
4099
|
+
|
|
4100
|
+
|
|
4101
|
+
|
|
4102
|
+
|
|
4103
|
+
|
|
4104
|
+
|
|
4105
|
+
|
|
4106
|
+
|
|
4107
|
+
|
|
4108
|
+
|
|
4109
|
+
|
|
4110
|
+
|
|
4111
|
+
|
|
4112
|
+
|
|
4113
|
+
|
|
4114
|
+
|
|
4115
|
+
|
|
4116
|
+
|
|
4117
|
+
|
|
4118
|
+
|
|
4119
|
+
|
|
4120
|
+
|
|
4121
|
+
|
|
4122
|
+
|
|
4123
|
+
|
|
4124
|
+
|
|
4125
|
+
|
|
4126
|
+
|
|
4127
|
+
|
|
4128
|
+
* @example
|
|
4129
|
+
* // Inventory system with price-sorted products
|
|
4130
|
+
* interface Product {
|
|
4131
|
+
* name: string;
|
|
4132
|
+
* price: number;
|
|
4133
|
+
* stock: number;
|
|
4134
|
+
* }
|
|
4135
|
+
*
|
|
4136
|
+
* const inventory = new TreeMap<string, Product, Product>(
|
|
4137
|
+
* [
|
|
4138
|
+
* { name: 'Widget', price: 9.99, stock: 100 },
|
|
4139
|
+
* { name: 'Gadget', price: 24.99, stock: 50 },
|
|
4140
|
+
* { name: 'Doohickey', price: 4.99, stock: 200 }
|
|
4141
|
+
* ],
|
|
4142
|
+
* { toEntryFn: p => [p.name, p] }
|
|
4143
|
+
* );
|
|
4144
|
+
*
|
|
4145
|
+
* // Sorted alphabetically by product name
|
|
4146
|
+
* console.log([...inventory.keys()]); // ['Doohickey', 'Gadget', 'Widget'];
|
|
4147
|
+
*
|
|
4148
|
+
* // Filter high-stock items
|
|
4149
|
+
* const highStock = inventory.filter(p => (p?.stock ?? 0) > 75);
|
|
4150
|
+
* console.log([...highStock.keys()]); // ['Doohickey', 'Widget'];
|
|
1415
4151
|
*
|
|
1416
4152
|
* // Calculate total inventory value
|
|
1417
4153
|
* const totalValue = inventory.reduce(
|
|
@@ -1421,6 +4157,58 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1421
4157
|
* console.log(totalValue); // toBeCloseTo;
|
|
1422
4158
|
*/
|
|
1423
4159
|
rangeSearch(range: [K, K], options?: TreeMapRangeOptions): Array<[K, V | undefined]>;
|
|
4160
|
+
/**
|
|
4161
|
+
* Returns the entry at the k-th position in tree order (0-indexed).
|
|
4162
|
+
* @remarks Time O(log n). Requires `enableOrderStatistic: true`.
|
|
4163
|
+
|
|
4164
|
+
|
|
4165
|
+
|
|
4166
|
+
* @example
|
|
4167
|
+
* // Find k-th entry in a TreeMap
|
|
4168
|
+
* const map = new TreeMap<string, number>(
|
|
4169
|
+
* [['alice', 95], ['bob', 87], ['charlie', 92]],
|
|
4170
|
+
* { enableOrderStatistic: true }
|
|
4171
|
+
* );
|
|
4172
|
+
* console.log(map.getByRank(0)); // 'alice';
|
|
4173
|
+
* console.log(map.getByRank(1)); // 'bob';
|
|
4174
|
+
* console.log(map.getByRank(2)); // 'charlie';
|
|
4175
|
+
*/
|
|
4176
|
+
getByRank(k: number): [K, V | undefined] | undefined;
|
|
4177
|
+
/**
|
|
4178
|
+
* Returns the 0-based rank of a key (number of elements that precede it in tree order).
|
|
4179
|
+
* @remarks Time O(log n). Requires `enableOrderStatistic: true`.
|
|
4180
|
+
* @example
|
|
4181
|
+
* // Get the rank of a key in sorted order
|
|
4182
|
+
* const tree = new TreeMap<number>(
|
|
4183
|
+
* [10, 20, 30, 40, 50],
|
|
4184
|
+
* { enableOrderStatistic: true }
|
|
4185
|
+
* );
|
|
4186
|
+
* console.log(tree.getRank(10)); // 0; // smallest → rank 0
|
|
4187
|
+
* console.log(tree.getRank(30)); // 2; // 2 elements before 30 in tree order
|
|
4188
|
+
* console.log(tree.getRank(50)); // 4; // largest → rank 4
|
|
4189
|
+
* console.log(tree.getRank(25)); // 2;
|
|
4190
|
+
*/
|
|
4191
|
+
getRank(key: K): number;
|
|
4192
|
+
/**
|
|
4193
|
+
* Returns keys by rank range (0-indexed, inclusive on both ends).
|
|
4194
|
+
* @remarks Time O(log n + k). Requires `enableOrderStatistic: true`.
|
|
4195
|
+
|
|
4196
|
+
* @example
|
|
4197
|
+
* // Pagination with rangeByRank
|
|
4198
|
+
* const tree = new TreeMap<number>(
|
|
4199
|
+
* [10, 20, 30, 40, 50, 60, 70, 80, 90],
|
|
4200
|
+
* { enableOrderStatistic: true }
|
|
4201
|
+
* );
|
|
4202
|
+
* const pageSize = 3;
|
|
4203
|
+
*
|
|
4204
|
+
* // Page 1
|
|
4205
|
+
* console.log(tree.rangeByRank(0, pageSize - 1)); // [10, 20, 30];
|
|
4206
|
+
* // Page 2
|
|
4207
|
+
* console.log(tree.rangeByRank(pageSize, 2 * pageSize - 1)); // [40, 50, 60];
|
|
4208
|
+
* // Page 3
|
|
4209
|
+
* console.log(tree.rangeByRank(2 * pageSize, 3 * pageSize - 1)); // [70, 80, 90];
|
|
4210
|
+
*/
|
|
4211
|
+
rangeByRank(start: number, end: number): Array<[K, V | undefined]>;
|
|
1424
4212
|
/**
|
|
1425
4213
|
* Creates a shallow clone of this map.
|
|
1426
4214
|
* @remarks Time O(n log n), Space O(n)
|
|
@@ -1442,6 +4230,126 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1442
4230
|
|
|
1443
4231
|
|
|
1444
4232
|
|
|
4233
|
+
|
|
4234
|
+
|
|
4235
|
+
|
|
4236
|
+
|
|
4237
|
+
|
|
4238
|
+
|
|
4239
|
+
|
|
4240
|
+
|
|
4241
|
+
|
|
4242
|
+
|
|
4243
|
+
|
|
4244
|
+
|
|
4245
|
+
|
|
4246
|
+
|
|
4247
|
+
|
|
4248
|
+
|
|
4249
|
+
|
|
4250
|
+
|
|
4251
|
+
|
|
4252
|
+
|
|
4253
|
+
|
|
4254
|
+
|
|
4255
|
+
|
|
4256
|
+
|
|
4257
|
+
|
|
4258
|
+
|
|
4259
|
+
|
|
4260
|
+
|
|
4261
|
+
|
|
4262
|
+
|
|
4263
|
+
|
|
4264
|
+
|
|
4265
|
+
|
|
4266
|
+
|
|
4267
|
+
|
|
4268
|
+
|
|
4269
|
+
|
|
4270
|
+
|
|
4271
|
+
|
|
4272
|
+
|
|
4273
|
+
|
|
4274
|
+
|
|
4275
|
+
|
|
4276
|
+
|
|
4277
|
+
|
|
4278
|
+
|
|
4279
|
+
|
|
4280
|
+
|
|
4281
|
+
|
|
4282
|
+
|
|
4283
|
+
|
|
4284
|
+
|
|
4285
|
+
|
|
4286
|
+
|
|
4287
|
+
|
|
4288
|
+
|
|
4289
|
+
|
|
4290
|
+
|
|
4291
|
+
|
|
4292
|
+
|
|
4293
|
+
|
|
4294
|
+
|
|
4295
|
+
|
|
4296
|
+
|
|
4297
|
+
|
|
4298
|
+
|
|
4299
|
+
|
|
4300
|
+
|
|
4301
|
+
|
|
4302
|
+
|
|
4303
|
+
|
|
4304
|
+
|
|
4305
|
+
|
|
4306
|
+
|
|
4307
|
+
|
|
4308
|
+
|
|
4309
|
+
|
|
4310
|
+
|
|
4311
|
+
|
|
4312
|
+
|
|
4313
|
+
|
|
4314
|
+
|
|
4315
|
+
|
|
4316
|
+
|
|
4317
|
+
|
|
4318
|
+
|
|
4319
|
+
|
|
4320
|
+
|
|
4321
|
+
|
|
4322
|
+
|
|
4323
|
+
|
|
4324
|
+
|
|
4325
|
+
|
|
4326
|
+
|
|
4327
|
+
|
|
4328
|
+
|
|
4329
|
+
|
|
4330
|
+
|
|
4331
|
+
|
|
4332
|
+
|
|
4333
|
+
|
|
4334
|
+
|
|
4335
|
+
|
|
4336
|
+
|
|
4337
|
+
|
|
4338
|
+
|
|
4339
|
+
|
|
4340
|
+
|
|
4341
|
+
|
|
4342
|
+
|
|
4343
|
+
|
|
4344
|
+
|
|
4345
|
+
|
|
4346
|
+
|
|
4347
|
+
|
|
4348
|
+
|
|
4349
|
+
|
|
4350
|
+
|
|
4351
|
+
|
|
4352
|
+
|
|
1445
4353
|
|
|
1446
4354
|
|
|
1447
4355
|
|