迭代linkedhashmap的最快方法

时间:2013-10-27 18:00:07

标签: java loops hashmap

如何迭代链接哈希映射的最快方法是什么,我需要100个最后一个密钥和前20个密钥。这个地图的大小在大多数情况下将超过500-1500,谢谢

 LinkedHashMap<Integer, Float> doc_1 = service5.getMatchingValue(query);

1 个答案:

答案 0 :(得分:2)

如果迭代HashMap,你仍然会有O(n)运行时,就像迭代任何其他数据结构一样......

迭代HashMap与迭代任何DS一样耗时。

如果您只需要散列映射的特定条目,您可能希望保留所需密钥的信息,并仅循环使用这些密钥。使用其密钥访问HashMap中的元素是O(1)(或至少是amorized),使用直接访问结果访问M个条目(通过它们的键),因此在O(M)运行时中使用O(M)&lt;&lt; O(N)。

您可以将最后100个密钥保留在缓存中,只需循环(复制)缓存,以便与HashMap结合使用,以获得最佳访问权限(就性能而言)。