-1

What's the fastest way how to iterate over linked hash map, I need 100 last keys and first 20 keys. The size of this map will be in most cases over 500-1500, thanks

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

1 回答 1

2

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

遍历 HashMap 与遍历任何 DS 一样耗时。

如果您只需要 hashmap 的特定条目,您可能希望保留有关所需键的信息,并且只遍历这些键。使用其键访问 HashMap 中的元素是 O(1) (或至少 amorized),使用直接访问结果访问 M 个条目(通过它们的键)因此在 O(M) 运行时 O(M) << O(N )。

您也许可以将最后 100 个键保留在缓存中,然后循环访问缓存的(副本),以便结合 HashMap 获得最佳访问(就性能而言)。

于 2013-10-27T18:06:02.427 回答