什么是Java中可调整大小,随机访问,高效的字节向量类?

前端之家收集整理的这篇文章主要介绍了什么是Java中可调整大小,随机访问,高效的字节向量类?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试在Java中找到一个用于存储字节向量的类,它支持随机访问(所以我可以在任何地方获取或设置一个字节),调整大小(所以我可以将内容附加到最后,或者手动更改大小),合理的效率(我可能在这些东西中存储兆字节的数据),都在内存中(我没有文件系统).有什么建议?

到目前为止候选人是:

> byte [].不可调整大小.
> java.util.Vector< Byte>.邪恶.也痛苦无效.
> java.io.ByteArrayOutputStream.不是随机访问.
> java.nio.ByteBuffer.不可调整大小.
> org.apache.commons.collections.primitives.ArrayByteList.不可调整大小.这很奇怪,因为它会自动调整大小,如果你添加东西,你就不能明确地改变大小!
> java.nio.channels.FileChannel的纯RAM实现.找不到一个. (记住我没有文件系统.)
> Apache Commons VFS和RAM文件系统.如果我必须,但我真的喜欢更重的东西……

这似乎是一个奇怪的遗漏,我相信我肯定错过了某个地方.我只想弄清楚什么.我错过了什么?

最佳答案
我会考虑一个包含大量byte []数组的类作为ArrayList或Vector的元素.

使每个块成为例如1024字节,因此您的访问器函数可以采用索引>> 10访问ArrayList的右边元素,然后索引& 0x3ff访问该数组的特定字节元素.

这将避免浪费将每个字节视为Byte对象,浪费在最后一个块末尾留下的任何东西.

猜你在找的Java相关文章