Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
免责声明: 这个问题不是用来争论的!
搜索键值对的最快且内存消耗更少的方法是什么?我将把项目存储在一个键值之类的关系中,我需要快速访问它们。我应该使用 SQLite 数据库吗?一张地图?哈希表?哈希表?请给出使用任何搜索方法的一些优点/缺点。
Map只要您的密钥哈希函数有效,任何基于哈希的结构都是可行的。您可以使用值 id:s 作为查找的结果,以在搜索期间节省内存。
Map
但是,如果您的数据已经在数据库中,则可以将此搜索完全留给 RDBMS,毕竟它们是为这些东西而设计的。
如果你的数据在内存中,Maps 通常是你的朋友——他们就是为此而生的。
但是不要使用Hashtable。它比较新的 Map 实现慢得多。因为它的方法是同步的,大多数时候不需要(并且在需要时,有一个更好的选择 - 见下文)。
Hashtable
在单线程上下文中,HashMap可能会没问题。
HashMap
如果您需要线程安全,请使用ConcurrentHashMap.
ConcurrentHashMap