1

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

例如,如果我正在寻找钥匙"New York"并且我的清单是:

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

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

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

到目前为止我想到的选项是:数据库、xml、csv。还有其他选择吗?对于这种情况,最好的选择是什么?

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

4

3 回答 3

1

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

因此,本质上,您将拥有以下列表,而不是您的列表:

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

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

于 2012-11-27T16:44:54.057 回答
1

最好和最快的方法是使用数据库。使用 SQLite 在数据库中存储和搜索数据。

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

于 2012-11-27T16:45:15.293 回答
1

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

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

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

于 2012-11-27T16:46:11.583 回答