Java 迭代ove链接哈希映射的最快方法

Java 迭代ove链接哈希映射的最快方法,java,loops,hashmap,Java,Loops,Hashmap,迭代链接哈希映射的最快方法是什么,我需要最后100个键和前20个键。此地图的大小在大多数情况下将超过500-1500,谢谢 LinkedHashMap<Integer, Float> doc_1 = service5.getMatchingValue(query); LinkedHashMap doc_1=service5.getMatchingValue(查询); 如果在HashMap上迭代,仍然会有O(n)运行时,就像在任何其他数据结构上迭代一样 在HashMap上迭代与在任

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

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

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

在HashMap上迭代与在任何DS上迭代一样耗时


如果您只需要hashmap的特定条目,那么您可能希望保留关于所需键的信息,并且只在这些键上循环。使用其键访问HashMap中的元素是O(1)(或至少是摊销),使用直接访问访问M个条目(通过它们的键)会导致O(M)运行时的O(M)可能与O(M)重复,如果您担心速度,就不应该在HashMap上迭代。这不是设计它们的目的。改为使用类似列表的集合。顺便说一句,如果你能帮忙的话,我不会使用
float
float
double
double
的精度更高9位数。您多久更换一次此地图?这是一种检索一次并迭代x次的操作吗?您需要dude@user251414使用线程很少能加快简单任务的速度。特别是如果它们没有内在的并发性。没有理由怀疑线程会有帮助,所以您必须澄清您提出的方法以及原因。如果不是最优的,很容易提供一个缓慢的解决方案,因此这不是一个证明。