2012-12-30 21 views
1

在Android中存储数据方面,使用大型ArrayList或设置SQLite数据库会更高效吗?我有大约9000个公交站点,并且需要停止使用我需要存储的名称(都是字符串),我想知道哪种方法最快或最有效。ArrayList或SQLite

回答

1

ArrayList可能是一个非常糟糕的主意。我假设你想要数据是持久的,所以如果你的用户杀死你的应用程序,你的数据将会丢失,如果你使用ArrayList。数据库是持久的(除非用户清除应用程序的缓存)。所以我强烈建议使用ArrayList上的数据库。

+0

感谢您的回应。对于数据库,我该如何填充数据库一次? – user1927638

+0

这里是一个很好的教程:http://www.vogella.com/articles/AndroidSQLite/article.html,你基本上必须创建一次数据库,插入数据,然后你可以在每次需要数据时查询它。 – Ahmad

0

如果您的数据没有改变,那么您可能可以在启动时读取它,并在App运行时保存在内存中。例如,让一个包含所有站点的.json文件,在启动时读取它,将数据放入HashMap或易于使用的东西,因为您可能会查找内容。它可能适用于〜9000条目。

如果您要在使用过程中添加或更新停止信息,那么SQLite是更好的选择。

+0

感谢您的回复。如果信息保持不变(即不改变停止和停止名称)会怎么样?这些信息将被简单阅读。 – user1927638

+0

然后创建一个包含所有信息的数据文件并将其与您的应用程序一起打包,从而在启动时将其读取到内存中即可。 –

0

1.)从SQLite数据库中存储和检索你的数据,因为你需要持久性。既然你说你有9k +行,一个简单的选择会一次给你所有的东西,你也可以很容易地过滤数据,如果你需要

2.)在启动时,把所有的数据放入高效的内存结构,如HashMaps (或在你的情况下,ArrayList),并在整个应用程序中引用它们。这样你只能做一次访问。

3.)如果有疑问,建立一个数据库。没有伤害,比文件更有效,更容易处理