声明:
这个问题并不具有争议性!
搜索键值对的最快且耗尽内存的方法是什么?我将以关键值存储项目,我需要快速访问它们。我应该使用SQLite数据库吗?一张地图?哈希表?一个HashMap?请给出使用任何搜索方法的一些优点/缺点。
答案 0 :(得分:11)
只要密钥的Map
有效,任何基于哈希的hash function结构都是可行的。您可以使用值id:s作为查找的结果,以便在搜索期间节省内存。
如果您的数据已经存在于数据库中,那么您可以完全将此搜索留给RDBMS,毕竟它们是针对这些内容制作的。
答案 1 :(得分:7)
如果你的数据在内存中,Map
一般都是你的朋友 - 它们就是为了这个。
不要使用Hashtable
。它比新的Map实现慢得多。因为它的方法是同步的,大部分时间都不需要(并且在需要时,还有更好的选择 - 见下文)。
在单线程环境中,HashMap
可能会没问题。
如果您需要线程安全,请使用ConcurrentHashMap
。