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

时间:2010-06-18 08:55:40

标签: java search key-value

声明:
这个问题并不具有争议性!

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

2 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:7)

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

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

在单线程环境中,HashMap可能会没问题。

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