2013-05-01 79 views
0

我有大約3000對(鍵值)。他們是固定的,不會永遠改變。在我的應用程序中,有一個頁面需要大約200個查詢。對於每個查詢,他們都會拿鑰匙並要求價值。而且,它們是連續的。我必須完成查詢1以獲得「值1」,然後我知道查詢2的關鍵是獲得「值2」。android:如何有效地查詢鍵值對

我試着用SQLite實現。我測量了時間,發現這很慢,大約需要600毫秒。我想知道是否有更好的方法來實現它?例如,具有3000大小的字符串數組?或其他散列表?謝謝你的建議。

編輯:忘記提及key和value的大小,key的大小:2char(unicode),value:4〜6char,實際上,它類似於查找語言詞典。

回答

0

答案取決於必須放入此容器中的數據量?例如。 3000對五字節:沒問題,將這些數據保存在內存中;然而,有3000對350字節:已經大約1MB。

如果您的數據量較少,可以考慮使用靜態的SparseArray,該靜態數據最初由SQL查詢或代碼中的賦值填充。 SparseArray的意圖是比HashTable更有效率。

如果密鑰不是整數,則HashTable仍然比SQL查詢快得多。

如果你有更大的數據集,你可以使用LruCache

+1

感謝您告訴我有關散列表,我使用散列表,發現它小於100毫秒。大大改善!謝謝 – manhon 2013-05-02 13:47:46

相關問題