2013-03-04 68 views
0

我在java中有一個賦值問題。使用arraylist處理巨大的數據大小

我有一個大小爲GB的文本文件。閱讀並找出該文件中每個單詞的出現次數並將其顯示爲[< <單詞>> - <>]。

最好的情況是所有的單詞都是一樣的。所以我會顯示該單詞沒有出現 ,但考慮最糟糕的情況就像文件中存在的單詞是唯一的。所以我需要顯示出現的所有單詞爲1.

如何處理這個龐大的數據列表?我們有這個解決方案嗎?

+1

你試過了什麼?你的代碼遇到了什麼問題?發佈該代碼。 – Dariusz 2013-03-04 12:10:59

回答

0

理想情況下,在java中編寫Map-Reduce程序可能是最好的方法。 下面是使用Map-Reduce範例的字數統計程序示例:Word Count Example

其他方法可以使用遞歸讀/寫操作執行此操作。 創建一個地圖(每個字母表一個地圖),以便您可以隨身攜帶26個地圖。取決於開始的字母,將詞語放在適當的地圖中。當達到某個地圖尺寸時,將該地圖中的所有單詞及其遞增的計數寫入具有某種標識的文件,以知道它包含哪些單詞。讀完文件中的所有單詞(以GB爲單位)後,從磁盤讀迴文件並計算字數。這將涉及一些IO,但我認爲不會引起任何與內存相關的問題。