繁体   English   中英

存储和搜索大量字符串的最有效方法

[英]Most efficient way to store and search through a large number of strings

我的Android应用程序中使用了大量字符串,分为三类:1个字符串,2个字符串,3个字符串。 我需要能够搜索这三个字符串列表,快速查找给定键的匹配并返回与这些字符串相关的第三个值。

例如,如果我正在寻找关键的"New York" ,我的列表是:

New York, test1
New Jersey, test2
Colorado, test3
Arkansas, test4
New York, test5

搜索将返回字符串: test1 and test5

在Android手机上存储搜索匹配项的这些字符串的最佳方法是什么?

到目前为止我想到的选项是:database,xml,csv。 还有其他选择吗?这种情况的最佳选择是什么?

编辑:如果我想保留项目的顺序,以便它们可以在列表中上下移动,我知道Hashmap是无序的。 arraylist会工作吗?

为什么不将它们存储为键和值列表之间的Map,并使用Android中的内置SQLLite数据库永久保存它们?

所以基本上,你将拥有:而不是你的列表:

New York: [test1, test5]
New Jersey: test2
Colorado: test3
Arkansas: test4

保持纽约的独特性,您将获得更快的结果。 在传统的DB意义上,它将是您的价值观的外键。

最好和最好的方法是使用数据库。 使用SQLite在数据库中存储和查看数据。

请参阅: http//developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

解析您的文件,使用分割每行,作为分隔符。 创建哈希表( java.util.Map的实现之一)并将解析后的结果放在那里,以便New York是一个键, test1test5等是存储在列表中的值:

Map<String, Collection<String>> map = new HashMap<>();

现在您可以直接访问此表,并始终可以找到任何城市的映射。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM