我有一个Map
,它在应用程序启动期间填满。以后在应用程序执行期间不会更改。以后,此映射仅用于迭代其中的所有元素。我应该选择哪种Map
具体实现? HashMap
或TreeMap
或LinkedHashMap
?
更新
插入顺序无关紧要。唯一重要的是所有元素(例如6000个元素)的快速迭代。
最佳答案
这里没有其他答案考虑到CPU缓存的影响,考虑到迭代时,它可能是巨大。
改善此问题的一种方法是仅使用交错键和值(键为偶数索引,值为奇数索引)的单个数组。这将把这些数据项紧密地分组在一起,并至少在引用方面最大程度地利用缓存。
但是,如果您可以避免创建保存数据并仅使用原始值数组的对象,则可以实现真正的,惊人的改进。自然,这在很大程度上取决于您的用例。
关于java - HashMap或TreeMap或LinkedHashMap哪个是迭代最快的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17910476/