2014-04-01 35 views
1

請建議一些替代方案來解決蠻力解決方案正在使用具有非常大的索引和存儲非常大的值的數組(非常大意味着超出範圍INT )。我正在使用Java來解決這個問題。替代問題涉及非常大的數組索引存儲非常大的值

樣品問題: 把大無鵝卵石在一個非常大的組的桶,然後計算在每個桶平均鵝卵石。

一種方法是聲明一個大數組,並根據用戶指定的索引繼續放置鵝卵石,然後計算平均值。但是這樣我們會爲這個數組使用一個大的空間。

+0

您可以使用某些基於文件的Collection實現。 – Vlad

回答

3

如果數組稀疏,則一個選項可以是Map的索引值

如果所有的數據仍然可以放入內存,那麼索引超出int的範圍,可以考慮的數組陣列。主陣列可以包含尺寸的陣列讓我們說1000000000.此數組中第0索引將包含值0-999999999,所述第一索引,1000000000-1999999999等

另一種替代方法是使用文件。 A RandomAccessFile可能會幫助您手動完成此操作,或者可能會有一些庫爲您提供陣列接口並在幕後處理文件I/O。