2013-01-11 41 views
0

我試圖找出最佳的數據結構來實現這個問題。我有一個包含帳號,唯一ID,日期,pdf格式名稱,稅碼的索引文件(約200000條記錄)。根據從文件中讀取的這些值,我必須分配一些操作(免除,刪除,稅收等)。一旦動作被分配,我可以調用實現此動作的必要方法。 龐大的數據量是我無法決定的原因。有什麼建議麼?大量數據 - 數據組合的操作很少 - 什麼數據結構?

+0

你能否提供更多信息?難的部分是存儲所有東西,還是將事物分類?你有什麼想法嘗試? – templatetypedef

回答

0

20萬的記錄是不是數據的所有體積巨大。

除非每個記錄必須引用另一條記錄,您可以流文件。讀取一行,將其轉換爲對象,根據需要處理該對象,調用必要的操作,然後移動到文件中的下一行。

你將不得不使用此方法的數據幾乎爲零的內存佔用。

或者,您可以讀取該文件,並在一個線程創建每行一個對象,將每個對象上的隊列,並使用一個或多個工作線程把對象從隊列並處理它們。這可以更好地利用多核CPU,但要花費一些內存,具體取決於隊列的大小。您當然可以設置最大隊列大小以避免內存不足(文件讀取器線程在隊列滿時會暫停,直到它變滿)。