2012-04-25 38 views
0

我正在開發一個網站的android應用程序。它有大量的用戶數量在100000左右。我必須將這些用戶提取到Arraylist以進行自定義用戶搜索。這是一個很好的做法,將這麼多的數據存儲在Arraylist中(特別是在android中)。如果沒有,我打算使用Sqlite數據庫的任何建議?android arraylist大量的字符串對象

+0

數據庫選項更好! – 2012-04-25 04:20:59

+0

如何在文件中存儲對象...? – ngesh 2012-04-25 04:20:59

+1

你從哪裏取他們? – 2012-04-25 04:26:16

回答

1

使數據類,並使其可序列化和使用的文件存儲。因爲如果你使用的數據庫得到,並把數據是不同的任務...存儲文件的對象是數據處理越好..

+0

我不熟悉文件存儲。我們必須使用xml文件進行本地存儲嗎? – 2012-04-25 04:44:30

+0

@ileaf ..不是真的..有直接的API存儲對象,, ..你只需要傳遞對象...谷歌搜索會給你很多教程.. – ngesh 2012-04-25 04:51:26

1

看來,將內容存儲在ArrayList中並不是一個好主意。根據數據或您的應用程序,您可能會收到'OutOfMemory'錯誤。嘗試將信息保存到SQLite數據庫或文件。

另一方面,我不認爲有必要批量下載10萬用戶數據並將其存儲在本地以便在設備上進行搜索。您可以讓您的服務執行搜索並僅返回搜索結果。如果這是可能的,那麼將其存儲在ArrayList中並不差。如果您的數組列表的大小超過了DVM容許的數量,您可以覆蓋onLowMemory回調並清空列表內容。通過這種方式,你可以防止你的應用程序被殺害

3

你不想使用任何類型的列表。

數據庫經過優化以存儲和搜索大量數據,如果您將這些用戶名存儲在ArrayList中,您將負責確保您高效地進行搜索。

首先,這似乎是一個糟糕的主意。爲什麼你想要所有1lakh +用戶名的本地副本?這是帶寬的可怕浪費!如果應用程序可以在數據庫中查詢正在搜索的用戶名,那會更好。然後,您可以只將結果存儲在客戶端上。

ex: SELECT * FROM `user` WHERE `name` LIKE "david" 

只存儲查詢結果。並非每個用戶。

+0

這也是我正在考慮。但是對於每個關鍵字,我們必須去服務器來獲取相應的匹配。這就是爲什麼我更喜歡本地存儲。 – 2012-04-25 04:42:08

+1

+1 @TheRealKingK。如果您真的有100000個用戶,這是最好的選擇。 – Dharmendra 2012-04-25 04:53:13

+0

你也應該有機制,如果你鍵入一個字符,它將連接到服務器,如果你快速鍵入第二個字符,那麼第一個請求應該停止,並且你必須再次連接到第二個請求的服務器。 – Dharmendra 2012-04-25 04:57:05

相關問題