[英]What is the best data structure in java for saving Bigdata Integer records?
我正在處理大量圖形,因此需要將它們的記錄保存在內存中。我有1,000,000,000
條包含整數的記錄。 記錄是:
record1: 13455659009,2459904444, 888999, 45590008
record2: 7787687970097,98776,898767746,6556
........
record1000000000: 8736406,.....,987586985,764765282
首先,我使用位集保存它們,例如,為record1我這樣做:
BitSet bs=new BitSet();
bs.set(134659009);
bs.set(245990444);
bs.set(888999);
bs.set(45590008);
但是位集效率不高。 因為我只有四個數字,但節省了245990444。我想將這些記錄保存在ram中,因此占用更少的空間很重要。 將這些整數記錄保存在ram中的最佳結構是什么? 哈希集比比特集好嗎?
最有效的結構可能是原始整數數組,即int[]
。 根據您的使用方式,將它包裝成一個實現java.lang.Set<Integer>
的類可能(也可能沒有)幫助。
另一方面,為什么您甚至需要圖形節點ID的整數列表? 為什么不僅是Node
類,還需要它的Set<Node>
成員以用於圖形邊緣?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.