2015-04-21 66 views
0

我有一個android的分類應用程序。它具有存儲在assoc命令陣列 像這樣的4K 城市設有相應的郵政編碼的列表:存儲數據在SQL數據庫VS數組(移動應用程序)

Map<String, String> cities = new HashMap<String, String>(); 
cities.put("Rio", "32433"); 
cities.put("Buenos Aires", "54335"); 

我在現在爲iPhone開發應用程序的過程中, 使用迅速,我想知道,是否應該堅持用 將城市數據存儲在數組中或將其存儲在數據庫中。

它會影響性能嗎?每當應用程序啓動時,應用程序將會有 填充陣列,因此可能數據庫集成將使應用程序啓動速度更快並消耗更少的資源。

如果有人有任何建議,我會高度讚賞它。 同樣,列表數組大約有4k個元素/行。

+0

這取決於你的數組中有什麼。如果只有一些不太長的字符串,那麼我會說它保存在一個數組中,或者使用其他容器,如隊列或堆棧。 –

+0

字符串幾乎與所示的長度相同。就是這樣的城市名稱。 – user3772

+0

那麼你是如何加載到數組中的名稱?從數據庫?從一個文件? –

回答

1

它始終是一個更好的方法來在數據庫中保存這樣的數據,我會給以下2個原因來支持這一點:

  1. 4K似乎不是一個大的內存塊,但考慮到每個城市有2個對象,城市名稱和郵政編碼,所以如果有1000個城市比您始終在內存中保留2000個對象!
  2. 使用數據庫可以在編譯時將所有城市信息轉儲到數據庫中,並且沒有啓動成本。
+0

嗨, 你是什麼意思「如果有1000個城市,你總是保持」? 數組中的數據用於填充搜索框。因此,當用戶 搜索新城市時,下拉菜單會顯示唯一可用的匹配城市名稱。 所以我一次不訪問1000個對象。只有一個。 – user3772

+0

無論你是否訪問對象都沒關係..但你的java文件將所有城市添加到HashMap中,所以它們將永遠保留在內存中,以保證HashMap的生命週期! –

+0

您的回答的邏輯導致我問這個問題。這正是我的想法,在首次推出時傾倒城市可能會更好。 – user3772

相關問題