我想在我的应用程序中构建一个数据结构来存储许多由键索引的条目。每个条目都有几个要检索和更新的参数。
你能否告诉我以下几种结构最有效:
提前致谢。
答案 0 :(得分:1)
如果它是一个简单的key->值关系,那么散列表或甚至nosql数据库是最好的。但是,听起来你正在存储一个键 - >(值,值,值,值),在这种情况下我会使用一个sql数据库,虽然这不是关系型的。密钥将是您的主键,它不必是INTEGER
它可以是任何数据类型。您必须确保您的密钥列至少为UNIQUE
,尽管将其设置为主键会自动执行此操作,否则您可能会遇到问题。
如果这更像是树结构,您可能不想使用sql数据库。如果你能给出你想要存储的数据的例子及其关系,我可以给你一个更好的答案。根据我的信息,我会使用sqlite。
答案 1 :(得分:0)
如果数据不适合内存,最常用的方法是使用SQLite。当然还有其他(更奇特的)解决方案,比如使用另一个数据库(例如H2 database)。
如果数据适合内存,请使用哈希表。 java.util.Hashtable和java.util.HashMap基本相同,但HashMap有点快(因为它没有同步)。在这种情况下,您可能仍需要保留数据,如果您想一步存储/读取所有内容,这可能会很慢。