HashMap或TreeMap或LinkedHashMap哪一个是迭代最快的?
2022-09-02 09:42:02
我有一个在应用程序启动期间填满的。在应用程序执行期间,它不会在以后更改。稍后,此映射仅用于迭代其中的所有元素。我应该选择哪种具体实现? 或 ?
更新
广告订单无关紧要。唯一重要的是所有元素的快速迭代(比如6000个元素)。Map
Map
HashMap
TreeMap
LinkedHashMap
我有一个在应用程序启动期间填满的。在应用程序执行期间,它不会在以后更改。稍后,此映射仅用于迭代其中的所有元素。我应该选择哪种具体实现? 或 ?
更新
广告订单无关紧要。唯一重要的是所有元素的快速迭代(比如6000个元素)。Map
Map
HashMap
TreeMap
LinkedHashMap
这里的其他答案都没有考虑CPU缓存的影响,当涉及迭代时,CPU缓存可能是巨大的。
改善这一点的一种方法是仅使用一个交错键和值数组(偶数索引处的键,奇数索引处的值)。这将把这些数据项紧密地组合在一起,并最大限度地利用缓存,至少对于引用而言。
但是,如果您可以避免创建保存数据的对象并仅使用基元值数组,那么真正的,尖叫的改进将实现。当然,这高度依赖于您的用例。