我应该使用什么数据结构来存储java中的二进制代码?

时间:2012-04-04 10:39:43

标签: java arrays string binary image-compression

我的二进制代码为 10111 100011 11101111 等。现在应该使用数据结构存储这些代码,以便存储它们的最小尺寸?

我不能使用字符串数组,因为与存储上述二进制代码的十进制等效值相比,所需的大小会更多。

4 个答案:

答案 0 :(得分:10)

如果长度不固定,

java.util.BitSet就是为此设计的。

答案 1 :(得分:7)

根据代码的长度,只需使用intlong

答案 2 :(得分:3)

如果它们很短,请使用byteintlong(视短暂程度而定)。

如果它们会更长一些,请使用byte s,intlong s的数组。例如,如果您需要存储256位代码,则可以在long[4]中执行此操作。

如果您需要存储的代码长度差异很大,您可以考虑使用length成员提供位数的类和byteint,{ {1}},longbyte[]int[]成员用于存储它们(具体取决于您希望的大小和粒度)。或者,如果您真的想尽可能多地打包,可以从存储区域中留出一些位来保存代码中的位数。

答案 3 :(得分:0)

每个二进制代码可以分成8位(一个字节)。如果尾部小于8位,则有必要定义如何处理尾部。字节数组应该很好地存储每个部分。