2017-03-11 39 views
2

我是新來的android,我想了解如何將數組保存到內存。我不是說內部記憶,因爲我知道共享首選項,外部存儲和sqlite。我正在查看RAM /堆的範圍內的東西。如何將數組保存到Android中的內存

實際的挑戰是我有一個字符串數組的名稱。第一次啓動應用程序時,我從sqlite數據庫中獲取名稱。

e.g

String[] names = new String[] {"dave", "james", "tommy" } 

這個列表可以增長到包含超過10000項。

在另一項活動中,我想檢查列表中是否存在某些名稱。我不想來回查詢數據庫來實現這一點。這就是爲什麼我認爲節省內存可能是最好的選擇,因爲它可以提高性能。

所以我想知道如何將這個數組保存在內存中,並在另一個活動中讀取它。我已經知道如何管理我的RAM了,我只是想方設法獲取這些信息並從中讀取信息。

感謝

+0

這個列表是靜態的,或者可以改變? –

+0

我的意思是可以改變的值或不@Os。 –

+2

你的列表已經在RAM /堆中。這是一個Java對象... –

回答

0

創建Singleton模式,把你的array到它,你可以在你的應用程序實例分享您的陣列,但記住這singleton類將與應用程序被破壞,從而將你的,你裏面陣列。

這是如何創建一個單身人士。

class Bar { 
private static class ArrayHolder { 
    public static List<String> array = new ArrayList<>(); 
} 

public static Bar getArray() { 
    return array; 
} 
} 

每當你需要訪問陣列,只是這樣做ArrayHolder.getArray()

+0

這裏'ArrayHolder'類的目的是什麼?它看起來像你試圖做懶惰持有人成語,不正確;但懶惰看起來沒有必要。 –

+0

我可以使用單例方法在另一個活動中從數組中獲取數據嗎? – Tajinere

+1

是的,你可以使用單例方法檢索數據 –