10

免责声明:
这个问题不是用来争论的!

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

4

2 回答 2

11

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

但是,如果您的数据已经在数据库中,则可以将此搜索完全留给 RDBMS,毕竟它们是为这些东西而设计的。

于 2010-06-18T08:58:16.003 回答
7

如果你的数据在内存中,Maps 通常是你的朋友——他们就是为此而生的。

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

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

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

于 2010-06-18T09:01:51.467 回答