用于byte []的不可变容器,支持子序列,如String.substring()

时间:2011-03-29 23:17:09

标签: java

String.substring()有效地重用String对象中的底层char [],我想知道是否有一个byte []数组的不可变容器支持类似的有效重用底层数组。

如果可以处理有效追加和前置等事情,可以获得额外积分。如果它是为Maven打包的话仍然是额外的分数。

有人知道这样的事吗?

2 个答案:

答案 0 :(得分:2)

在没有走出基础SDK之外的最合适的事情是java.nio 缓冲区,如ByteBuffer ..

答案 1 :(得分:1)

有协议缓冲区ByteString。来自JavaDoc:

  

不可变的字节序列。与String一样,通过共享对不可变底层字节的引用来支持Substring。通过在RopeByteString中构建一个片段树,同样支持连接而不复制(长字符串)。