我想知道是否有可能,无需复制数据即可访问带有偏移的byte[]
?
我查看了Arrays.*
,ByteArrayInputStream
和System.arraycopy
,但他们都需要分配一个新的byte[]
进行复制。
我想要的是C++
中的相同内容:
char* buffer = new char[256];
char* buf_offset = buffer + 128; // <- no copy
答案 0 :(得分:4)
您可以改为通过ByteBuffer
。它可以高级,复制,切片而无需复制。
ByteBuffer非常丑陋且反直觉。然而,它在新的JDK API中被广泛使用,因此人们可能会接受它是一种基本类型。
答案 1 :(得分:1)
不,没有相应的。您只需要自己跟踪偏移量。您总是可以创建一个类来封装(数据,偏移)对。