3

我想知道是否有可能使用byte[]偏移量访问 a 而不必复制数据?
我看过Arrays.*,ByteArrayInputStreamSystem.arraycopy,但它们都需要分配一个新byte[]的复制到。

我想要的是相当于这个C++

char* buffer = new char[256];
char* buf_offset = buffer + 128; // <- no copy
4

2 回答 2

4

你可以ByteBuffer绕过来代替。它可以在不复制的情况下进行高级、复制、切片。

ByteBuffer 真的很丑陋且违反直觉。然而,它在新的 JDK API 中被广泛使用,所以人们可能会接受它是一种基本类型。

于 2012-11-15T18:35:13.497 回答
1

不,没有类似的东西。您只需要自己跟踪偏移量。您始终可以创建一个类来封装 (data, offset) 对。

于 2012-11-15T18:28:51.340 回答