应该是一件容易的事。
我正在研究 Scala,试图处理长序列的二进制数据。那是一长串 0 和 1 的列表。存储/访问此类数据的“最佳”方式是什么。
这里的重点是内存优化,所以我想避免使用整个字节来存储布尔值。访问也很重要,所以我想避免将它们放入字节然后放入数组中。
位图是个好主意吗?scala中有这样的课程吗?
如果没有,最好使用 ByteArray 吗?你将如何实现这一点?
还有其他想法吗?
谢谢,
应该是一件容易的事。
我正在研究 Scala,试图处理长序列的二进制数据。那是一长串 0 和 1 的列表。存储/访问此类数据的“最佳”方式是什么。
这里的重点是内存优化,所以我想避免使用整个字节来存储布尔值。访问也很重要,所以我想避免将它们放入字节然后放入数组中。
位图是个好主意吗?scala中有这样的课程吗?
如果没有,最好使用 ByteArray 吗?你将如何实现这一点?
还有其他想法吗?
谢谢,
如果您的值不是均匀分布的(0 多于 1),您可以使用游程编码来编码图像数据。这是传真使用的编码。
有两种编码选项:
您可以使用 java.util.BitSet (如果聪明的显式使其更像 Scala,也许可以使用一对夫妇)。
如果这仍然太昂贵,我会编写一个在内部使用数组并将位打包成整数或字节的类。