我有一个Map,它在应用程序启动期间填满。以后在应用程序执行期间不会更改。以后,此映射仅用于迭代其中的所有元素。我应该选择哪种Map具体实现? HashMapTreeMapLinkedHashMap
更新
插入顺序无关紧要。唯一重要的是所有元素(例如6000个元素)的快速迭代。

最佳答案

这里没有其他答案考虑到CPU缓存的影响,考虑到迭代时,它可能是巨大

改善此问题的一种方法是仅使用交错键和值(键为偶数索引,值为奇数索引)的单个数组。这将把这些数据项紧密地分组在一起,并至少在引用方面最大程度地利用缓存。

但是,如果您可以避免创建保存数据并仅使用原始值数组的对象,则可以实现真正的,惊人的改进。自然,这在很大程度上取决于您的用例。

关于java - HashMap或TreeMap或LinkedHashMap哪个是迭代最快的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17910476/

10-09 03:15