簡體   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