|
|
1
15
它的枚举器将遍历哈希表中的存储桶,直到找到一个非空的存储桶,然后返回该存储桶中的值。
因此,反复呼叫
顺便说一下,您可以避免这样的值查找:(这不会使它明显更快)
|
|
|
2
4
字典不努力跟踪关键字列表。所以迭代器需要遍历桶。这些桶中的许多,特别是对于一本大字典来说,其中许多没有任何内容。 比较OpenJDK可能会有所帮助 HashIterator.nextEntry 和 PrivateEntryIterator.nextEntry (使用treemap.successor)。哈希版本将遍历未知数量的条目,以查找非空的条目。如果散列表删除了许多元素(在您的例子中就是这样),那么这可能会特别慢。在Treemap中,我们唯一要做的就是按顺序遍历。路上没有空(只有叶子处)。 |
|
|
3
1
好吧,哈希表没有排序,我猜它必须先做某种排序,然后才能进行迭代,或者进行某种扫描,如果已经排序了,它就可以循环通过。 |
|
4
1
反射镜显示
然而 ,如果要删除该数组的第一个元素,则最终将遍历该数组,直到找到一个非空元素:
当您删除条目时,您开始在
|
|
|
5
0
不进行查找,排序字典的最简单实现是键的排序列表(如treeset)和哈希组合;列表为您提供排序,字典为您提供值。因此,按键已经可用。哈希表没有随时可用的键,因此罪犯不是
|