2014-11-22 85 views
0

我有一個包含大約10,000個json轉儲的文件。每個JSON有大約20個領域,其中只有5個對我有用。我需要遍歷該文件,解析每個json並存儲相關元素以供進一步處理。對象的ArrayList與哈希映射的Arraylist

在Java中,什麼是高效的數據結構來存儲相關的json字段。我對對象的ArrayList(爲此我將創建一個bean來容納各個字段)和一個ArrayList of HashMaps(其中每個相關的json字段將作爲鍵值對存儲)之間感到困惑。

在內存使用和計算方面,哪兩者更好?

回答

1

如果您有一組固定的字段,Object將小於HashMap。

HashMap必須將鍵存儲爲每個實例的字符串。訪問對象中的字段也會更快。在對象中訪問字段是單字節代碼操作。訪問HashMap需要爲給定字段計算散列值,然後訪問數組中的元素。

無論如何,性能可能不是這個特定問題的主導因素,使用對象可能會更具可讀性。

2

這取決於你的用例。如果你打算全部使用5個字段。就像把它放在數據庫中一樣,或者在UI中顯示,然後是第一種方法(bean數組)。如果你打算有選擇地使用這些字段(這裏有1個字段和5個字段中的另外5個字段),那麼sceond方法更好(散列圖陣列)。

2

豆列表具有更好的類型安全性和可讀性。直到你能證明這種方法存在問題爲止。