如何在java中创建一个2D位数组,其中存储在每个单元格中的数据在硬盘驱动器上大小为1位?

时间:2012-08-09 18:58:41

标签: 2d bitarray

我真正想要完成的事情如下: 1)创建一个表或打包的2D位数组,2列 - 行可以是任何长度。 给出列名,以便我可以引用它们。 3)然后我可以设置此数组中的各个位 4)一旦将数据放入表中,我想将表对象写入文件。 我不关心内存中的表对象的大小是否为lons,因为每个单元中的数据占用硬盘驱动器上的1位。假设表对象的大小为10个字节,并且我在表中存储了16位,因此当写入文件时,总共得到12个字节。

我是编程的新手所以请原谅我,如果我没说清楚的话。 我很感激你的知识。

2 个答案:

答案 0 :(得分:3)

任何2D数组都可以使用一维数组实现。以m行和n列的2D数组为例。在这种情况下,等效1D数组的大小将为m * n。

2D [i,j]相当于1D [i * n + j]。这里我是行索引,j是列索引。

在java中,您使用BitSet来实现1D位数组。 BitSet类是一个可序列化的类,因此您可以将其保存在磁盘中。当你在硬盘中保存一个bitset对象时,可能还需要进一步研究它最终需要多少空间。

答案 1 :(得分:-1)

您无法在硬盘上保存一位。

例如,java中的char数据类型占用了4位,这就是你可以使用的simples数据类型。