2014-04-08 100 views
0

我有一個Java應用程序,它有一個260萬個值的數組,永遠不會改變。什麼是初始化它的最好方法?在Java中包含大量常量的最佳方法?

答案顯然是把它放在代碼 - 即是這樣的:

int[] BigArray = new int[] {1, 2, 3, <...>, 2599999, 2600000}; 

但我的印象,這違反了一些大小限制之下。

我已經看到this post提到屬性中的鍵/值對,但這似乎並不特別直觀 - 我不明白爲什麼我需要將每個數組條目保存爲鍵(用於數組索引)和一個值;我應該能夠按順序獲得價值。

下一個最好的方法似乎是將數據保存爲文件,然後在啓動時將文件加載到數組中(或使用List),每個值都在其自己的行上(是的,行分隔符佔用2.6MB,但260萬個逗號也是如此)。這是一個時間密集的方式嗎?

+0

這些是實際值,按順序?如果是這樣,你甚至不需要數組,因爲'BigArray [i]'是'i + 1'。如果你有'我',只需加1。 – rgettman

+0

它只是整數?如果是的話,他們都出席或者你跳過一些? – dkatzel

+10

我不認爲這是一個普遍的事實,但如果你的應用程序中有那麼多常量,那麼你做錯了什麼。 – Kon

回答

1

假設你正在試圖讓每一個int值數組可達2.6M,只是這樣做

int[] bigArray = new int[2600000]; 
    for(int i = 0; i < 2600000; i++) 
    { 
     int j = i; 
     bigArray[i] = j+1; 
    } 

你引用的被標記Android開發的文章,所以我不知道你是否」爲Android重新開發,因爲這篇文章沒有被標記爲android,但是如果你正在做我認爲你正在做的事情,這應該會起作用。

+0

這是天才。 – diddles

相關問題