0

用独立内容将一系列元素从一个缓冲区减去另一个缓冲区的最佳方法是什么?像这样:

//before
DirectByteBuffer 1: (1, |2, 3, 4|, 5, 6) //get element range from 1 to 3

//after
DirectByteBuffer 1: (1, 5, 6)
DirectByteBuffer 2: (2, 3, 4)
4

1 回答 1

3

put(ByteBuffer)应该是在缓冲区之间复制字节的最快方法。因此,您可以使用它将一个缓冲区的一部分复制到另一个缓冲区。使用不同的切片,您还可以使用它在单个缓冲区内移动数据,从而填补复制数据留下的“洞”。基本步骤是

  1. 为源区域准备一个新切片
  2. 设置它的位置限制来表示你要复制的数据
  3. 将目标缓冲区中的位置设置为要放置数据的位置
  4. 使用将源切片放在目标位置put
于 2013-06-22T21:12:43.693 回答