我正在使用大量的图表,我需要将它们的记录保存在内存中。我有一些由整数组成的记录1,000,000,000
。记录是:
record1: 13455659009,2459904444, 888999, 45590008
record2: 7787687970097,98776,898767746,6556
........
record1000000000: 8736406,.....,987586985,764765282
首先我使用bitset来保存它们,例如对于record1我做了这个:
BitSet bs=new BitSet();
bs.set(134659009);
bs.set(245990444);
bs.set(888999);
bs.set(45590008);
但是bitset效率不高。因为我只有四个数字,但它节省了245990444。 我想将这些记录保存在ram中,因此占用较少的空间非常重要。在ram中保存这些整数记录的最佳结构是什么? hashset比bitset更好 感谢。?
答案 0 :(得分:0)
最有效的结构可能是原始整数数组,即int[]
。根据您使用它的方式,使用实现java.lang.Set<Integer>
的类包装它可能(或可能没有)。
另一方面,为什么你甚至需要一个图形节点ID的整数列表?为什么不只是Node
类,以及图形边缘的Set<Node>
成员?