data-structure-typed 2.5.0 → 2.5.1
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 +3 -1
- package/README.md +63 -26
- package/dist/cjs/binary-tree.cjs +23698 -0
- package/dist/cjs/graph.cjs +5236 -0
- package/dist/cjs/hash.cjs +1262 -0
- package/dist/cjs/heap.cjs +1540 -0
- package/dist/cjs/index.cjs +28244 -14795
- package/dist/cjs/linked-list.cjs +4370 -0
- package/dist/cjs/matrix.cjs +1042 -0
- package/dist/cjs/priority-queue.cjs +1314 -0
- package/dist/cjs/queue.cjs +4090 -0
- package/dist/cjs/stack.cjs +861 -0
- package/dist/cjs/trie.cjs +1173 -0
- package/dist/cjs-legacy/binary-tree.cjs +23730 -0
- package/dist/cjs-legacy/graph.cjs +5234 -0
- package/dist/cjs-legacy/hash.cjs +1262 -0
- package/dist/cjs-legacy/heap.cjs +1537 -0
- package/dist/cjs-legacy/index.cjs +28239 -14790
- package/dist/cjs-legacy/linked-list.cjs +4376 -0
- package/dist/cjs-legacy/matrix.cjs +1045 -0
- package/dist/cjs-legacy/priority-queue.cjs +1312 -0
- package/dist/cjs-legacy/queue.cjs +4088 -0
- package/dist/cjs-legacy/stack.cjs +861 -0
- package/dist/cjs-legacy/trie.cjs +1172 -0
- package/dist/esm/binary-tree.mjs +23683 -0
- package/dist/esm/graph.mjs +5223 -0
- package/dist/esm/hash.mjs +1259 -0
- package/dist/esm/heap.mjs +1534 -0
- package/dist/esm/index.mjs +28242 -14796
- package/dist/esm/linked-list.mjs +4363 -0
- package/dist/esm/matrix.mjs +1038 -0
- package/dist/esm/priority-queue.mjs +1310 -0
- package/dist/esm/queue.mjs +4086 -0
- package/dist/esm/stack.mjs +859 -0
- package/dist/esm/trie.mjs +1170 -0
- package/dist/esm-legacy/binary-tree.mjs +23715 -0
- package/dist/esm-legacy/graph.mjs +5221 -0
- package/dist/esm-legacy/hash.mjs +1259 -0
- package/dist/esm-legacy/heap.mjs +1531 -0
- package/dist/esm-legacy/index.mjs +28237 -14791
- package/dist/esm-legacy/linked-list.mjs +4369 -0
- package/dist/esm-legacy/matrix.mjs +1041 -0
- package/dist/esm-legacy/priority-queue.mjs +1308 -0
- package/dist/esm-legacy/queue.mjs +4084 -0
- package/dist/esm-legacy/stack.mjs +859 -0
- package/dist/esm-legacy/trie.mjs +1169 -0
- 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 +240 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +280 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +502 -2
- package/dist/types/data-structures/binary-tree/bst.d.ts +481 -1
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +380 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +120 -1
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +2764 -384
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +2753 -353
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2241 -321
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +2554 -274
- package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
- package/dist/types/data-structures/graph/directed-graph.d.ts +200 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +180 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +230 -10
- package/dist/types/data-structures/heap/heap.d.ts +280 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +343 -3
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +303 -3
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +362 -2
- package/dist/types/data-structures/matrix/matrix.d.ts +160 -0
- package/dist/types/data-structures/queue/deque.d.ts +304 -4
- package/dist/types/data-structures/queue/queue.d.ts +240 -0
- package/dist/types/data-structures/stack/stack.d.ts +200 -0
- package/dist/types/data-structures/trie/trie.d.ts +244 -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/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 +28022 -14573
- package/dist/umd/data-structure-typed.min.js +9 -3
- 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 +6130 -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 +5831 -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 +6374 -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 +1257 -0
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +1475 -0
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +1117 -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 +613 -0
- package/docs-site-docusaurus/docs/guide/concepts.md +420 -0
- package/docs-site-docusaurus/docs/guide/guides.md +611 -0
- package/docs-site-docusaurus/docs/guide/installation.md +60 -0
- package/docs-site-docusaurus/docs/guide/integrations.md +823 -0
- package/docs-site-docusaurus/docs/guide/overview.md +638 -0
- package/docs-site-docusaurus/docs/guide/performance.md +833 -0
- package/docs-site-docusaurus/docs/guide/quick-start.md +73 -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 +71 -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/robots.txt +4 -0
- package/docs-site-docusaurus/typedoc.json +23 -0
- package/package.json +106 -10
- package/src/data-structures/base/index.ts +1 -0
- 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 +240 -0
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +281 -1
- package/src/data-structures/binary-tree/binary-tree.ts +502 -2
- package/src/data-structures/binary-tree/bst.ts +481 -1
- package/src/data-structures/binary-tree/red-black-tree.ts +380 -0
- package/src/data-structures/binary-tree/segment-tree.ts +121 -2
- package/src/data-structures/binary-tree/tree-map.ts +2862 -482
- package/src/data-structures/binary-tree/tree-multi-map.ts +2963 -563
- package/src/data-structures/binary-tree/tree-multi-set.ts +2399 -479
- package/src/data-structures/binary-tree/tree-set.ts +2685 -405
- package/src/data-structures/graph/abstract-graph.ts +4 -4
- package/src/data-structures/graph/directed-graph.ts +200 -0
- package/src/data-structures/graph/undirected-graph.ts +180 -0
- package/src/data-structures/hash/hash-map.ts +235 -15
- package/src/data-structures/heap/heap.ts +280 -0
- package/src/data-structures/linked-list/doubly-linked-list.ts +343 -3
- package/src/data-structures/linked-list/singly-linked-list.ts +303 -3
- package/src/data-structures/linked-list/skip-linked-list.ts +362 -2
- package/src/data-structures/matrix/matrix.ts +161 -1
- package/src/data-structures/queue/deque.ts +305 -5
- package/src/data-structures/queue/queue.ts +240 -0
- package/src/data-structures/stack/stack.ts +200 -0
- package/src/data-structures/trie/trie.ts +245 -5
- package/src/interfaces/graph.ts +1 -1
- package/src/types/common.ts +2 -2
- 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,31 +140,10 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
148
140
|
|
|
149
141
|
|
|
150
142
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
176
147
|
|
|
177
148
|
|
|
178
149
|
|
|
@@ -223,20 +194,12 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
223
194
|
|
|
224
195
|
|
|
225
196
|
* @example
|
|
226
|
-
* //
|
|
227
|
-
*
|
|
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;
|
|
197
|
+
* // Check empty
|
|
198
|
+
* console.log(new TreeMap().isEmpty()); // true;
|
|
236
199
|
*/
|
|
237
|
-
|
|
200
|
+
isEmpty(): boolean;
|
|
238
201
|
/**
|
|
239
|
-
*
|
|
202
|
+
* Set or overwrite a value for a key.
|
|
240
203
|
* @remarks Expected time O(log n)
|
|
241
204
|
|
|
242
205
|
|
|
@@ -287,22 +250,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
287
250
|
|
|
288
251
|
|
|
289
252
|
|
|
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
253
|
|
|
307
254
|
|
|
308
255
|
|
|
@@ -352,22 +299,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
352
299
|
|
|
353
300
|
|
|
354
301
|
|
|
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
302
|
|
|
372
303
|
|
|
373
304
|
|
|
@@ -406,15 +337,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
406
337
|
|
|
407
338
|
|
|
408
339
|
|
|
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
340
|
|
|
419
341
|
|
|
420
342
|
|
|
@@ -426,6 +348,39 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
426
348
|
|
|
427
349
|
|
|
428
350
|
|
|
351
|
+
* @example
|
|
352
|
+
* // Sorted dictionary for a contact book
|
|
353
|
+
* const contacts = new TreeMap<string, string>([
|
|
354
|
+
* ['Bob', '555-0102'],
|
|
355
|
+
* ['Alice', '555-0101'],
|
|
356
|
+
* ['Charlie', '555-0103']
|
|
357
|
+
* ]);
|
|
358
|
+
*
|
|
359
|
+
* // Contacts are automatically sorted by name
|
|
360
|
+
* console.log([...contacts.keys()]); // ['Alice', 'Bob', 'Charlie'];
|
|
361
|
+
* console.log(contacts.get('Bob')); // '555-0102';
|
|
362
|
+
*
|
|
363
|
+
* // Find the first contact alphabetically after 'B'
|
|
364
|
+
* console.log(contacts.ceiling('B')); // ['Bob', '555-0102'];
|
|
365
|
+
*
|
|
366
|
+
* // Find contacts in range
|
|
367
|
+
* console.log(contacts.rangeSearch(['Alice', 'Bob'])); // [
|
|
368
|
+
* // ['Alice', '555-0101'],
|
|
369
|
+
* // ['Bob', '555-0102']
|
|
370
|
+
* // ];
|
|
371
|
+
*/
|
|
372
|
+
set(key: K, value: V | undefined): this;
|
|
373
|
+
/**
|
|
374
|
+
* Get the value under a key.
|
|
375
|
+
* @remarks Expected time O(log n)
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
|
|
429
384
|
|
|
430
385
|
|
|
431
386
|
|
|
@@ -453,17 +408,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
453
408
|
|
|
454
409
|
|
|
455
410
|
|
|
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
411
|
|
|
468
412
|
|
|
469
413
|
|
|
@@ -502,16 +446,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
502
446
|
|
|
503
447
|
|
|
504
448
|
|
|
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
449
|
|
|
516
450
|
|
|
517
451
|
|
|
@@ -550,17 +484,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
550
484
|
|
|
551
485
|
|
|
552
486
|
|
|
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
487
|
|
|
565
488
|
|
|
566
489
|
|
|
@@ -600,19 +523,21 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
600
523
|
|
|
601
524
|
|
|
602
525
|
* @example
|
|
603
|
-
* //
|
|
604
|
-
* const
|
|
605
|
-
*
|
|
606
|
-
*
|
|
607
|
-
*
|
|
526
|
+
* // Configuration registry with typed lookups
|
|
527
|
+
* const config = new TreeMap<string, number>([
|
|
528
|
+
* ['maxRetries', 3],
|
|
529
|
+
* ['timeout', 5000],
|
|
530
|
+
* ['poolSize', 10]
|
|
531
|
+
* ]);
|
|
532
|
+
*
|
|
533
|
+
* console.log(config.get('timeout')); // 5000;
|
|
534
|
+
* console.log(config.get('missing')); // undefined;
|
|
535
|
+
* console.log(config.size); // 3;
|
|
608
536
|
*/
|
|
609
|
-
|
|
537
|
+
get(key: K): V | undefined;
|
|
610
538
|
/**
|
|
611
|
-
*
|
|
612
|
-
*
|
|
613
|
-
* This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
|
|
614
|
-
* @remarks Time O(n log n) expected, Space O(n)
|
|
615
|
-
|
|
539
|
+
* Test whether a key exists.
|
|
540
|
+
* @remarks Expected time O(log n)
|
|
616
541
|
|
|
617
542
|
|
|
618
543
|
|
|
@@ -650,18 +575,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
650
575
|
|
|
651
576
|
|
|
652
577
|
|
|
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
578
|
|
|
666
579
|
|
|
667
580
|
|
|
@@ -700,16 +613,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
700
613
|
|
|
701
614
|
|
|
702
615
|
|
|
703
|
-
* @example
|
|
704
|
-
* // Filter entries
|
|
705
|
-
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
|
|
706
|
-
* const filtered = tm.filter((v, k) => k > 1);
|
|
707
|
-
* console.log([...filtered.keys()]); // [2, 3];
|
|
708
|
-
*/
|
|
709
|
-
filter(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): TreeMap<K, V>;
|
|
710
|
-
/**
|
|
711
|
-
* Reduce entries into a single accumulator.
|
|
712
|
-
* @remarks Time O(n), Space O(1)
|
|
713
616
|
|
|
714
617
|
|
|
715
618
|
|
|
@@ -748,15 +651,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
748
651
|
|
|
749
652
|
|
|
750
653
|
|
|
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
654
|
|
|
761
655
|
|
|
762
656
|
|
|
@@ -794,14 +688,22 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
794
688
|
|
|
795
689
|
|
|
796
690
|
* @example
|
|
797
|
-
* //
|
|
798
|
-
* const
|
|
799
|
-
*
|
|
691
|
+
* // Feature flag checking
|
|
692
|
+
* const flags = new TreeMap<string, boolean>([
|
|
693
|
+
* ['darkMode', true],
|
|
694
|
+
* ['betaFeature', false],
|
|
695
|
+
* ['notifications', true]
|
|
696
|
+
* ]);
|
|
697
|
+
*
|
|
698
|
+
* console.log(flags.has('darkMode')); // true;
|
|
699
|
+
* console.log(flags.has('unknownFlag')); // false;
|
|
800
700
|
*/
|
|
801
|
-
|
|
701
|
+
has(key: K): boolean;
|
|
802
702
|
/**
|
|
803
|
-
*
|
|
804
|
-
* @
|
|
703
|
+
* Delete a key.
|
|
704
|
+
* @returns `true` if the key existed; otherwise `false`.
|
|
705
|
+
* @remarks Expected time O(log n)
|
|
706
|
+
|
|
805
707
|
|
|
806
708
|
|
|
807
709
|
|
|
@@ -838,16 +740,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
838
740
|
|
|
839
741
|
|
|
840
742
|
|
|
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
743
|
|
|
852
744
|
|
|
853
745
|
|
|
@@ -884,15 +776,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
884
776
|
|
|
885
777
|
|
|
886
778
|
|
|
887
|
-
* @example
|
|
888
|
-
* // Find matching entry
|
|
889
|
-
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
890
|
-
* console.log(tm.find(v => v === 'b')?.[0]); // 2;
|
|
891
|
-
*/
|
|
892
|
-
find(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): [K, V | undefined] | undefined;
|
|
893
|
-
/**
|
|
894
|
-
* Materialize the map into an array of `[key, value]` tuples.
|
|
895
|
-
* @remarks Time O(n), Space O(n)
|
|
896
779
|
|
|
897
780
|
|
|
898
781
|
|
|
@@ -931,15 +814,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
931
814
|
|
|
932
815
|
|
|
933
816
|
|
|
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
817
|
|
|
944
818
|
|
|
945
819
|
|
|
@@ -979,13 +853,39 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
979
853
|
|
|
980
854
|
|
|
981
855
|
* @example
|
|
982
|
-
* //
|
|
983
|
-
* const
|
|
984
|
-
*
|
|
856
|
+
* // Session management with expiry
|
|
857
|
+
* const sessions = new TreeMap<string, number>([
|
|
858
|
+
* ['sess_abc', Date.now()],
|
|
859
|
+
* ['sess_def', Date.now()],
|
|
860
|
+
* ['sess_ghi', Date.now()]
|
|
861
|
+
* ]);
|
|
862
|
+
*
|
|
863
|
+
* console.log(sessions.size); // 3;
|
|
864
|
+
* sessions.delete('sess_def');
|
|
865
|
+
* console.log(sessions.has('sess_def')); // false;
|
|
866
|
+
* console.log(sessions.size); // 2;
|
|
985
867
|
*/
|
|
986
|
-
|
|
868
|
+
delete(key: K): boolean;
|
|
987
869
|
/**
|
|
988
|
-
*
|
|
870
|
+
* Remove all entries.
|
|
871
|
+
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
|
|
881
|
+
|
|
882
|
+
|
|
883
|
+
|
|
884
|
+
|
|
885
|
+
|
|
886
|
+
|
|
887
|
+
|
|
888
|
+
|
|
989
889
|
|
|
990
890
|
|
|
991
891
|
|
|
@@ -997,36 +897,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
997
897
|
|
|
998
898
|
|
|
999
899
|
|
|
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
900
|
|
|
1031
901
|
|
|
1032
902
|
|
|
@@ -1038,20 +908,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1038
908
|
|
|
1039
909
|
|
|
1040
910
|
|
|
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
911
|
|
|
1056
912
|
|
|
1057
913
|
|
|
@@ -1063,22 +919,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1063
919
|
|
|
1064
920
|
|
|
1065
921
|
|
|
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
922
|
|
|
1083
923
|
|
|
1084
924
|
|
|
@@ -1090,22 +930,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1090
930
|
|
|
1091
931
|
|
|
1092
932
|
|
|
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
933
|
|
|
1110
934
|
|
|
1111
935
|
|
|
@@ -1144,41 +968,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1144
968
|
|
|
1145
969
|
|
|
1146
970
|
|
|
1147
|
-
* @example
|
|
1148
|
-
* // Event scheduler with time-based lookup
|
|
1149
|
-
* const events = new TreeMap<Date, string>();
|
|
1150
|
-
*
|
|
1151
|
-
* const meeting = new Date('2024-01-15T10:00:00Z');
|
|
1152
|
-
* const lunch = new Date('2024-01-15T12:00:00Z');
|
|
1153
|
-
* const review = new Date('2024-01-15T15:00:00Z');
|
|
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';
|
|
1172
|
-
*
|
|
1173
|
-
* // Events between 9:30 and 13:00
|
|
1174
|
-
* const from = new Date('2024-01-15T09:30:00Z');
|
|
1175
|
-
* const to = new Date('2024-01-15T13:00:00Z');
|
|
1176
|
-
* const window = events.rangeSearch([from, to]);
|
|
1177
|
-
* console.log(window.map(([, v]) => v)); // ['Team Meeting', 'Lunch Break'];
|
|
1178
|
-
*/
|
|
1179
|
-
ceiling(key: K): [K, V | undefined] | undefined;
|
|
1180
|
-
/**
|
|
1181
|
-
* Largest entry whose key is <= the given key.
|
|
1182
971
|
|
|
1183
972
|
|
|
1184
973
|
|
|
@@ -1218,24 +1007,38 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1218
1007
|
|
|
1219
1008
|
|
|
1220
1009
|
* @example
|
|
1221
|
-
* //
|
|
1222
|
-
* const
|
|
1223
|
-
*
|
|
1224
|
-
*
|
|
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;
|
|
1010
|
+
* // Remove all
|
|
1011
|
+
* const tm = new TreeMap<number, string>([[1, 'a']]);
|
|
1012
|
+
* tm.clear();
|
|
1013
|
+
* console.log(tm.isEmpty()); // true;
|
|
1235
1014
|
*/
|
|
1236
|
-
|
|
1015
|
+
clear(): void;
|
|
1237
1016
|
/**
|
|
1238
|
-
*
|
|
1017
|
+
* Iterate over keys in ascending order.
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
|
|
1024
|
+
|
|
1025
|
+
|
|
1026
|
+
|
|
1027
|
+
|
|
1028
|
+
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
|
|
1032
|
+
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
|
|
1036
|
+
|
|
1037
|
+
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
|
|
1239
1042
|
|
|
1240
1043
|
|
|
1241
1044
|
|
|
@@ -1274,25 +1077,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1274
1077
|
|
|
1275
1078
|
|
|
1276
1079
|
|
|
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
1080
|
|
|
1297
1081
|
|
|
1298
1082
|
|
|
@@ -1331,26 +1115,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1331
1115
|
|
|
1332
1116
|
|
|
1333
1117
|
|
|
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
1118
|
|
|
1355
1119
|
|
|
1356
1120
|
|
|
@@ -1390,25 +1154,2541 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1390
1154
|
|
|
1391
1155
|
|
|
1392
1156
|
* @example
|
|
1393
|
-
* //
|
|
1394
|
-
*
|
|
1395
|
-
*
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1157
|
+
* // Get sorted keys
|
|
1158
|
+
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a']]);
|
|
1159
|
+
* console.log([...tm.keys()]); // [1, 3];
|
|
1160
|
+
*/
|
|
1161
|
+
keys(): IterableIterator<K>;
|
|
1162
|
+
private _entryFromKey;
|
|
1163
|
+
/**
|
|
1164
|
+
* Iterate over values in ascending key order.
|
|
1165
|
+
*
|
|
1166
|
+
* Note: values may be `undefined` (TreeMap allows storing `undefined`, like native `Map`).
|
|
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
|
+
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
|
|
1300
|
+
|
|
1301
|
+
|
|
1302
|
+
|
|
1303
|
+
|
|
1304
|
+
|
|
1305
|
+
* @example
|
|
1306
|
+
* // Get values in key order
|
|
1307
|
+
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
1308
|
+
* console.log([...tm.values()]); // ['a', 'b'];
|
|
1309
|
+
*/
|
|
1310
|
+
values(): IterableIterator<V | undefined>;
|
|
1311
|
+
/**
|
|
1312
|
+
* Iterate over `[key, value]` entries in ascending key order.
|
|
1313
|
+
*
|
|
1314
|
+
* Note: values may be `undefined`.
|
|
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
|
+
* @example
|
|
1454
|
+
* // Iterate key-value pairs
|
|
1455
|
+
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a'], [2, 'b']]);
|
|
1456
|
+
* console.log([...tm.entries()]); // [[1, 'a'], [2, 'b'], [3, 'c']];
|
|
1457
|
+
*/
|
|
1458
|
+
entries(): IterableIterator<[K, V | undefined]>;
|
|
1459
|
+
[Symbol.iterator](): IterableIterator<[K, V | undefined]>;
|
|
1460
|
+
/**
|
|
1461
|
+
* Visit each entry in ascending key order.
|
|
1462
|
+
*
|
|
1463
|
+
* Note: callback value may be `undefined`.
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
|
|
1467
|
+
|
|
1468
|
+
|
|
1469
|
+
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
|
|
1473
|
+
|
|
1474
|
+
|
|
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
|
+
* @example
|
|
1603
|
+
* // Execute for each entry
|
|
1604
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
1605
|
+
* const pairs: string[] = [];
|
|
1606
|
+
* tm.forEach((v, k) => pairs.push(`${k}:${v}`));
|
|
1607
|
+
* console.log(pairs); // ['1:a', '2:b'];
|
|
1608
|
+
*/
|
|
1609
|
+
forEach(cb: (value: V | undefined, key: K, map: TreeMap<K, V>) => void, thisArg?: unknown): void;
|
|
1610
|
+
/**
|
|
1611
|
+
* Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
|
|
1612
|
+
*
|
|
1613
|
+
* This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
|
|
1614
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
|
|
1618
|
+
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
|
|
1623
|
+
|
|
1624
|
+
|
|
1625
|
+
|
|
1626
|
+
|
|
1627
|
+
|
|
1628
|
+
|
|
1629
|
+
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
|
|
1633
|
+
|
|
1634
|
+
|
|
1635
|
+
|
|
1636
|
+
|
|
1637
|
+
|
|
1638
|
+
|
|
1639
|
+
|
|
1640
|
+
|
|
1641
|
+
|
|
1642
|
+
|
|
1643
|
+
|
|
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
|
+
* @example
|
|
1754
|
+
* // Transform entries
|
|
1755
|
+
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
1756
|
+
* const doubled = tm.map((v, k) => [k, (v ?? 0) * 2] as [number, number]);
|
|
1757
|
+
* console.log([...doubled.values()]); // [20, 40];
|
|
1758
|
+
*/
|
|
1759
|
+
map<MK, MV>(callbackfn: TreeMapEntryCallback<K, V, [MK, MV], TreeMap<K, V>>, options?: Omit<TreeMapOptions<MK, MV>, 'toEntryFn'> & {
|
|
1760
|
+
comparator?: (a: MK, b: MK) => number;
|
|
1761
|
+
}, thisArg?: unknown): TreeMap<MK, MV>;
|
|
1762
|
+
/**
|
|
1763
|
+
* Create a new TreeMap containing only entries that satisfy the predicate.
|
|
1764
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
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
|
+
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
|
|
1806
|
+
|
|
1807
|
+
|
|
1808
|
+
|
|
1809
|
+
|
|
1810
|
+
|
|
1811
|
+
|
|
1812
|
+
|
|
1813
|
+
|
|
1814
|
+
|
|
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
|
+
* @example
|
|
1904
|
+
* // Filter entries
|
|
1905
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
|
|
1906
|
+
* const filtered = tm.filter((v, k) => k > 1);
|
|
1907
|
+
* console.log([...filtered.keys()]); // [2, 3];
|
|
1908
|
+
*/
|
|
1909
|
+
filter(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): TreeMap<K, V>;
|
|
1910
|
+
/**
|
|
1911
|
+
* Reduce entries into a single accumulator.
|
|
1912
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
1974
|
+
|
|
1975
|
+
|
|
1976
|
+
|
|
1977
|
+
|
|
1978
|
+
|
|
1979
|
+
|
|
1980
|
+
|
|
1981
|
+
|
|
1982
|
+
|
|
1983
|
+
|
|
1984
|
+
|
|
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
|
+
* @example
|
|
2052
|
+
* // Aggregate values
|
|
2053
|
+
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
2054
|
+
* console.log(tm.reduce((acc, v) => acc + (v ?? 0), 0)); // 30;
|
|
2055
|
+
*/
|
|
2056
|
+
reduce<A>(callbackfn: TreeMapReduceCallback<K, V, A, TreeMap<K, V>>, initialValue: A): A;
|
|
2057
|
+
/**
|
|
2058
|
+
* Test whether all entries satisfy a predicate.
|
|
2059
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
2144
|
+
|
|
2145
|
+
|
|
2146
|
+
|
|
2147
|
+
|
|
2148
|
+
|
|
2149
|
+
|
|
2150
|
+
|
|
2151
|
+
|
|
2152
|
+
|
|
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
|
+
* @example
|
|
2197
|
+
* // Test all entries
|
|
2198
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
2199
|
+
* console.log(tm.every((v, k) => k > 0)); // true;
|
|
2200
|
+
*/
|
|
2201
|
+
every(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
|
|
2202
|
+
/**
|
|
2203
|
+
* Test whether any entry satisfies a predicate.
|
|
2204
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
2312
|
+
|
|
2313
|
+
|
|
2314
|
+
|
|
2315
|
+
|
|
2316
|
+
|
|
2317
|
+
|
|
2318
|
+
|
|
2319
|
+
|
|
2320
|
+
|
|
2321
|
+
|
|
2322
|
+
|
|
2323
|
+
|
|
2324
|
+
|
|
2325
|
+
|
|
2326
|
+
|
|
2327
|
+
|
|
2328
|
+
|
|
2329
|
+
|
|
2330
|
+
|
|
2331
|
+
|
|
2332
|
+
|
|
2333
|
+
|
|
2334
|
+
|
|
2335
|
+
|
|
2336
|
+
|
|
2337
|
+
|
|
2338
|
+
|
|
2339
|
+
|
|
2340
|
+
|
|
2341
|
+
* @example
|
|
2342
|
+
* // Test any entry
|
|
2343
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
2344
|
+
* console.log(tm.some((v, k) => k === 2)); // true;
|
|
2345
|
+
*/
|
|
2346
|
+
some(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
|
|
2347
|
+
/**
|
|
2348
|
+
* Find the first entry that satisfies a predicate.
|
|
2349
|
+
* @returns The first matching `[key, value]` tuple, or `undefined`.
|
|
2350
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
2477
|
+
|
|
2478
|
+
|
|
2479
|
+
|
|
2480
|
+
|
|
2481
|
+
|
|
2482
|
+
|
|
2483
|
+
|
|
2484
|
+
|
|
2485
|
+
|
|
2486
|
+
|
|
2487
|
+
* @example
|
|
2488
|
+
* // Find matching entry
|
|
2489
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
2490
|
+
* console.log(tm.find(v => v === 'b')?.[0]); // 2;
|
|
2491
|
+
*/
|
|
2492
|
+
find(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): [K, V | undefined] | undefined;
|
|
2493
|
+
/**
|
|
2494
|
+
* Materialize the map into an array of `[key, value]` tuples.
|
|
2495
|
+
* @remarks Time O(n), Space O(n)
|
|
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
|
+
* @example
|
|
2635
|
+
* // Convert to array
|
|
2636
|
+
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
2637
|
+
* console.log(tm.toArray()); // [[1, 'a'], [2, 'b']];
|
|
2638
|
+
*/
|
|
2639
|
+
toArray(): Array<[K, V | undefined]>;
|
|
2640
|
+
/**
|
|
2641
|
+
* Print a human-friendly representation.
|
|
2642
|
+
* @remarks Time O(n), Space O(n)
|
|
2643
|
+
|
|
2644
|
+
|
|
2645
|
+
|
|
2646
|
+
|
|
2647
|
+
|
|
2648
|
+
|
|
2649
|
+
|
|
2650
|
+
|
|
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
|
+
* @example
|
|
2782
|
+
* // Display tree
|
|
2783
|
+
* const tm = new TreeMap<number, string>([[1, 'a']]);
|
|
2784
|
+
* expect(() => tm.print()).not.toThrow();
|
|
2785
|
+
*/
|
|
2786
|
+
print(): void;
|
|
2787
|
+
/**
|
|
2788
|
+
* Smallest entry by key.
|
|
2789
|
+
|
|
2790
|
+
|
|
2791
|
+
|
|
2792
|
+
|
|
2793
|
+
|
|
2794
|
+
|
|
2795
|
+
|
|
2796
|
+
|
|
2797
|
+
|
|
2798
|
+
|
|
2799
|
+
|
|
2800
|
+
|
|
2801
|
+
|
|
2802
|
+
|
|
2803
|
+
|
|
2804
|
+
|
|
2805
|
+
|
|
2806
|
+
|
|
2807
|
+
|
|
2808
|
+
|
|
2809
|
+
|
|
2810
|
+
|
|
2811
|
+
|
|
2812
|
+
|
|
2813
|
+
|
|
2814
|
+
|
|
2815
|
+
|
|
2816
|
+
|
|
2817
|
+
|
|
2818
|
+
|
|
2819
|
+
|
|
2820
|
+
* @example
|
|
2821
|
+
* // Leaderboard with ranked scores
|
|
2822
|
+
* // Use score as key (descending), player name as value
|
|
2823
|
+
* const leaderboard = new TreeMap<number, string>([], {
|
|
2824
|
+
* comparator: (a, b) => b - a // descending
|
|
2825
|
+
* });
|
|
2826
|
+
*
|
|
2827
|
+
* leaderboard.set(1500, 'Alice');
|
|
2828
|
+
* leaderboard.set(2200, 'Bob');
|
|
2829
|
+
* leaderboard.set(1800, 'Charlie');
|
|
2830
|
+
* leaderboard.set(2500, 'Diana');
|
|
2831
|
+
*
|
|
2832
|
+
* // Top 3 players (first 3 in descending order)
|
|
2833
|
+
* const top3 = [...leaderboard.entries()].slice(0, 3);
|
|
2834
|
+
* console.log(top3); // [
|
|
2835
|
+
* // [2500, 'Diana'],
|
|
2836
|
+
* // [2200, 'Bob'],
|
|
2837
|
+
* // [1800, 'Charlie']
|
|
2838
|
+
* // ];
|
|
2839
|
+
*
|
|
2840
|
+
* // Highest scorer
|
|
2841
|
+
* console.log(leaderboard.first()); // [2500, 'Diana'];
|
|
2842
|
+
*
|
|
2843
|
+
* // Remove lowest scorer
|
|
2844
|
+
* console.log(leaderboard.pollLast()); // [1500, 'Alice'];
|
|
2845
|
+
* console.log(leaderboard.size); // 3;
|
|
2846
|
+
*/
|
|
2847
|
+
first(): [K, V | undefined] | undefined;
|
|
2848
|
+
/**
|
|
2849
|
+
* Largest entry by key.
|
|
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
|
+
* @example
|
|
2882
|
+
* // Access the maximum entry
|
|
2883
|
+
* const scores = new TreeMap<number, string>([
|
|
2884
|
+
* [85, 'Bob'],
|
|
2885
|
+
* [92, 'Alice'],
|
|
2886
|
+
* [78, 'Charlie']
|
|
2887
|
+
* ]);
|
|
2888
|
+
*
|
|
2889
|
+
* console.log(scores.last()); // [92, 'Alice'];
|
|
2890
|
+
* console.log(scores.first()); // [78, 'Charlie'];
|
|
2891
|
+
*/
|
|
2892
|
+
last(): [K, V | undefined] | undefined;
|
|
2893
|
+
/**
|
|
2894
|
+
* Remove and return the smallest entry.
|
|
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
|
+
* @example
|
|
2927
|
+
* // Process items from lowest priority
|
|
2928
|
+
* const tasks = new TreeMap<number, string>([
|
|
2929
|
+
* [3, 'Low'],
|
|
2930
|
+
* [1, 'Critical'],
|
|
2931
|
+
* [2, 'Medium']
|
|
2932
|
+
* ]);
|
|
2933
|
+
*
|
|
2934
|
+
* // Process lowest priority first
|
|
2935
|
+
* console.log(tasks.pollFirst()); // [1, 'Critical'];
|
|
2936
|
+
* console.log(tasks.pollFirst()); // [2, 'Medium'];
|
|
2937
|
+
* console.log(tasks.size); // 1;
|
|
2938
|
+
*/
|
|
2939
|
+
pollFirst(): [K, V | undefined] | undefined;
|
|
2940
|
+
/**
|
|
2941
|
+
* Remove and return the largest entry.
|
|
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
|
+
* @example
|
|
2974
|
+
* // Remove the maximum entry
|
|
2975
|
+
* const bids = new TreeMap<number, string>([
|
|
2976
|
+
* [100, 'Alice'],
|
|
2977
|
+
* [150, 'Bob'],
|
|
2978
|
+
* [120, 'Charlie']
|
|
2979
|
+
* ]);
|
|
2980
|
+
*
|
|
2981
|
+
* // Remove highest bid
|
|
2982
|
+
* console.log(bids.pollLast()); // [150, 'Bob'];
|
|
2983
|
+
* console.log(bids.size); // 2;
|
|
2984
|
+
* console.log(bids.last()); // [120, 'Charlie'];
|
|
2985
|
+
*/
|
|
2986
|
+
pollLast(): [K, V | undefined] | undefined;
|
|
2987
|
+
/**
|
|
2988
|
+
* Smallest entry whose key is >= the given key.
|
|
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
|
+
* @example
|
|
3108
|
+
* // Event scheduler with time-based lookup
|
|
3109
|
+
* const events = new TreeMap<Date, string>();
|
|
3110
|
+
*
|
|
3111
|
+
* const meeting = new Date('2024-01-15T10:00:00Z');
|
|
3112
|
+
* const lunch = new Date('2024-01-15T12:00:00Z');
|
|
3113
|
+
* const review = new Date('2024-01-15T15:00:00Z');
|
|
3114
|
+
* const standup = new Date('2024-01-15T09:00:00Z');
|
|
3115
|
+
*
|
|
3116
|
+
* events.set(meeting, 'Team Meeting');
|
|
3117
|
+
* events.set(lunch, 'Lunch Break');
|
|
3118
|
+
* events.set(review, 'Code Review');
|
|
3119
|
+
* events.set(standup, 'Daily Standup');
|
|
3120
|
+
*
|
|
3121
|
+
* // Events are sorted chronologically
|
|
3122
|
+
* console.log([...events.values()]); // [
|
|
3123
|
+
* // 'Daily Standup',
|
|
3124
|
+
* // 'Team Meeting',
|
|
3125
|
+
* // 'Lunch Break',
|
|
3126
|
+
* // 'Code Review'
|
|
3127
|
+
* // ];
|
|
3128
|
+
*
|
|
3129
|
+
* // Next event after 11:00
|
|
3130
|
+
* const after11 = new Date('2024-01-15T11:00:00Z');
|
|
3131
|
+
* console.log(events.ceiling(after11)?.[1]); // 'Lunch Break';
|
|
3132
|
+
*
|
|
3133
|
+
* // Events between 9:30 and 13:00
|
|
3134
|
+
* const from = new Date('2024-01-15T09:30:00Z');
|
|
3135
|
+
* const to = new Date('2024-01-15T13:00:00Z');
|
|
3136
|
+
* const window = events.rangeSearch([from, to]);
|
|
3137
|
+
* console.log(window.map(([, v]) => v)); // ['Team Meeting', 'Lunch Break'];
|
|
3138
|
+
*/
|
|
3139
|
+
ceiling(key: K): [K, V | undefined] | undefined;
|
|
3140
|
+
/**
|
|
3141
|
+
* Largest entry whose key is <= the given key.
|
|
3142
|
+
|
|
3143
|
+
|
|
3144
|
+
|
|
3145
|
+
|
|
3146
|
+
|
|
3147
|
+
|
|
3148
|
+
|
|
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
|
+
|
|
3185
|
+
|
|
3186
|
+
|
|
3187
|
+
|
|
3188
|
+
|
|
3189
|
+
|
|
3190
|
+
|
|
3191
|
+
|
|
3192
|
+
|
|
3193
|
+
|
|
3194
|
+
|
|
3195
|
+
|
|
3196
|
+
|
|
3197
|
+
|
|
3198
|
+
|
|
3199
|
+
|
|
3200
|
+
|
|
3201
|
+
|
|
3202
|
+
|
|
3203
|
+
|
|
3204
|
+
|
|
3205
|
+
|
|
3206
|
+
|
|
3207
|
+
|
|
3208
|
+
|
|
3209
|
+
|
|
3210
|
+
|
|
3211
|
+
|
|
3212
|
+
|
|
3213
|
+
|
|
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
|
+
|
|
3250
|
+
|
|
3251
|
+
|
|
3252
|
+
|
|
3253
|
+
|
|
3254
|
+
|
|
3255
|
+
|
|
3256
|
+
|
|
3257
|
+
|
|
3258
|
+
|
|
3259
|
+
|
|
3260
|
+
* @example
|
|
3261
|
+
* // Find the largest key ≤ target
|
|
3262
|
+
* const versions = new TreeMap<number, string>([
|
|
3263
|
+
* [1, 'v1.0'],
|
|
3264
|
+
* [3, 'v3.0'],
|
|
3265
|
+
* [5, 'v5.0'],
|
|
3266
|
+
* [7, 'v7.0']
|
|
3267
|
+
* ]);
|
|
3268
|
+
*
|
|
3269
|
+
* // Largest version ≤ 4
|
|
3270
|
+
* console.log(versions.floor(4)); // [3, 'v3.0'];
|
|
3271
|
+
* // Largest version ≤ 5 (exact match)
|
|
3272
|
+
* console.log(versions.floor(5)); // [5, 'v5.0'];
|
|
3273
|
+
* // No version ≤ 0
|
|
3274
|
+
* console.log(versions.floor(0)); // undefined;
|
|
3275
|
+
*/
|
|
3276
|
+
floor(key: K): [K, V | undefined] | undefined;
|
|
3277
|
+
/**
|
|
3278
|
+
* Smallest entry whose key is > the given key.
|
|
3279
|
+
|
|
3280
|
+
|
|
3281
|
+
|
|
3282
|
+
|
|
3283
|
+
|
|
3284
|
+
|
|
3285
|
+
|
|
3286
|
+
|
|
3287
|
+
|
|
3288
|
+
|
|
3289
|
+
|
|
3290
|
+
|
|
3291
|
+
|
|
3292
|
+
|
|
3293
|
+
|
|
3294
|
+
|
|
3295
|
+
|
|
3296
|
+
|
|
3297
|
+
|
|
3298
|
+
|
|
3299
|
+
|
|
3300
|
+
|
|
3301
|
+
|
|
3302
|
+
|
|
3303
|
+
|
|
3304
|
+
|
|
3305
|
+
|
|
3306
|
+
|
|
3307
|
+
|
|
3308
|
+
|
|
3309
|
+
|
|
3310
|
+
|
|
3311
|
+
|
|
3312
|
+
|
|
3313
|
+
|
|
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
|
+
|
|
3350
|
+
|
|
3351
|
+
|
|
3352
|
+
|
|
3353
|
+
|
|
3354
|
+
|
|
3355
|
+
|
|
3356
|
+
|
|
3357
|
+
|
|
3358
|
+
|
|
3359
|
+
|
|
3360
|
+
|
|
3361
|
+
|
|
3362
|
+
|
|
3363
|
+
|
|
3364
|
+
|
|
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
|
+
* @example
|
|
3398
|
+
* // Find the smallest key strictly > target
|
|
3399
|
+
* const prices = new TreeMap<number, string>([
|
|
3400
|
+
* [10, 'Basic'],
|
|
3401
|
+
* [25, 'Standard'],
|
|
3402
|
+
* [50, 'Premium'],
|
|
3403
|
+
* [100, 'Enterprise']
|
|
3404
|
+
* ]);
|
|
3405
|
+
*
|
|
3406
|
+
* // Next tier above $25
|
|
3407
|
+
* console.log(prices.higher(25)); // [50, 'Premium'];
|
|
3408
|
+
* // Next tier above $99
|
|
3409
|
+
* console.log(prices.higher(99)); // [100, 'Enterprise'];
|
|
3410
|
+
* // Nothing above $100
|
|
3411
|
+
* console.log(prices.higher(100)); // undefined;
|
|
3412
|
+
*/
|
|
3413
|
+
higher(key: K): [K, V | undefined] | undefined;
|
|
3414
|
+
/**
|
|
3415
|
+
* Largest entry whose key is < the given key.
|
|
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
|
+
|
|
3500
|
+
|
|
3501
|
+
|
|
3502
|
+
|
|
3503
|
+
|
|
3504
|
+
|
|
3505
|
+
|
|
3506
|
+
|
|
3507
|
+
|
|
3508
|
+
|
|
3509
|
+
|
|
3510
|
+
|
|
3511
|
+
|
|
3512
|
+
|
|
3513
|
+
|
|
3514
|
+
|
|
3515
|
+
|
|
3516
|
+
|
|
3517
|
+
|
|
3518
|
+
|
|
3519
|
+
|
|
3520
|
+
|
|
3521
|
+
|
|
3522
|
+
|
|
3523
|
+
|
|
3524
|
+
|
|
3525
|
+
|
|
3526
|
+
|
|
3527
|
+
|
|
3528
|
+
|
|
3529
|
+
|
|
3530
|
+
|
|
3531
|
+
|
|
3532
|
+
|
|
3533
|
+
|
|
3534
|
+
* @example
|
|
3535
|
+
* // Find the largest key strictly < target
|
|
3536
|
+
* const temps = new TreeMap<number, string>([
|
|
3537
|
+
* [0, 'Freezing'],
|
|
3538
|
+
* [20, 'Cool'],
|
|
3539
|
+
* [30, 'Warm'],
|
|
3540
|
+
* [40, 'Hot']
|
|
3541
|
+
* ]);
|
|
3542
|
+
*
|
|
3543
|
+
* // Largest reading below 30
|
|
3544
|
+
* console.log(temps.lower(30)); // [20, 'Cool'];
|
|
3545
|
+
* // Nothing below 0
|
|
3546
|
+
* console.log(temps.lower(0)); // undefined;
|
|
3547
|
+
*/
|
|
3548
|
+
lower(key: K): [K, V | undefined] | undefined;
|
|
3549
|
+
/**
|
|
3550
|
+
* Return all entries in a given key range.
|
|
3551
|
+
*
|
|
3552
|
+
* @param range `[low, high]`
|
|
3553
|
+
* @param options Inclusive/exclusive bounds (defaults to inclusive).
|
|
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
|
+
|
|
3669
|
+
|
|
3670
|
+
|
|
3671
|
+
|
|
3672
|
+
* @example
|
|
3673
|
+
* // Inventory system with price-sorted products
|
|
3674
|
+
* interface Product {
|
|
3675
|
+
* name: string;
|
|
3676
|
+
* price: number;
|
|
3677
|
+
* stock: number;
|
|
3678
|
+
* }
|
|
3679
|
+
*
|
|
3680
|
+
* const inventory = new TreeMap<string, Product, Product>(
|
|
3681
|
+
* [
|
|
3682
|
+
* { name: 'Widget', price: 9.99, stock: 100 },
|
|
3683
|
+
* { name: 'Gadget', price: 24.99, stock: 50 },
|
|
3684
|
+
* { name: 'Doohickey', price: 4.99, stock: 200 }
|
|
3685
|
+
* ],
|
|
3686
|
+
* { toEntryFn: p => [p.name, p] }
|
|
3687
|
+
* );
|
|
3688
|
+
*
|
|
3689
|
+
* // Sorted alphabetically by product name
|
|
3690
|
+
* console.log([...inventory.keys()]); // ['Doohickey', 'Gadget', 'Widget'];
|
|
3691
|
+
*
|
|
1412
3692
|
* // Filter high-stock items
|
|
1413
3693
|
* const highStock = inventory.filter(p => (p?.stock ?? 0) > 75);
|
|
1414
3694
|
* console.log([...highStock.keys()]); // ['Doohickey', 'Widget'];
|
|
@@ -1442,6 +3722,106 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1442
3722
|
|
|
1443
3723
|
|
|
1444
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
|
+
|
|
3822
|
+
|
|
3823
|
+
|
|
3824
|
+
|
|
1445
3825
|
|
|
1446
3826
|
|
|
1447
3827
|
|