繁体   English   中英

在Java中搜索键值对的最快,最有效的方法?

[英]Fastest and most efficient way of searching a key-value pair in Java?

免责声明:
这个问题并不是有争议的!

搜索键值对的最快且耗尽内存的方法是什么? 我将以关键值存储项目,我需要快速访问它们。 我应该使用SQLite数据库吗? 一张地图? 哈希表? 一个HashMap? 请给出使用任何搜索方法的一些优点/缺点。

只要您的密钥的哈希函数有效,任何基于散列的Map结构都是可行的 您可以使用值id:s作为查找的结果,以便在搜索期间节省内存。

如果您的数据已经在数据库中,那么您可以完全将此搜索留给RDBMS,毕竟它们是针对这些内容制作的。

如果你的数据在内存中, Map一般都是你的朋友 - 它们就是为了这个。

但是不要使用Hashtable 它比新的Map实现慢得多。 因为它的方法是同步的,大部分时间都不需要(并且在需要时,有更好的选择 - 见下文)。

在单线程上下文中, HashMap可能会没问题。

如果需要线程安全性,请使用ConcurrentHashMap

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM