[英]What is the most efficient method to search a large collection of strings for the closest match?
[英]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
是一個鍵, test1
, test5
等是存儲在列表中的值:
Map<String, Collection<String>> map = new HashMap<>();
現在您可以直接訪問此表,並始終可以找到任何城市的映射。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.