📅  最后修改于: 2023-12-03 15:31:52.708000             🧑  作者: Mango
IntBuffer是Java NIO中的一个缓冲区,用于存放int类型数据。IntBuffer有许多方法可以方便地对缓冲区进行操作,其中之一就是duplicate()方法。
IntBuffer的duplicate()方法会创建一个新的IntBuffer对象,其底层数据与原始的IntBuffer对象相同。也就是说,duplicate()方法复制了IntBuffer的状态和内容,但两个对象是独立的。
public IntBuffer duplicate()
import java.nio.*;
public class IntBufferDemo {
public static void main(String[] args) {
// 创建一个IntBuffer对象
IntBuffer buffer = IntBuffer.allocate(5);
// 添加元素到缓冲区
buffer.put(10);
buffer.put(20);
buffer.put(30);
buffer.put(40);
buffer.put(50);
// 创建一个新的IntBuffer对象,并复制buffer的状态和内容
IntBuffer duplicateBuffer = buffer.duplicate();
// 输出原始缓冲区和复制后的缓冲区内容
System.out.println("Original buffer:");
printBuffer(buffer);
System.out.println("Duplicate buffer:");
printBuffer(duplicateBuffer);
}
private static void printBuffer(IntBuffer buffer) {
// 将限制设置为位置,以便读取所有元素
buffer.flip();
// 读取所有元素
while (buffer.hasRemaining()) {
System.out.print(buffer.get() + " ");
}
System.out.println();
}
}
输出结果:
Original buffer:
10 20 30 40 50
Duplicate buffer:
10 20 30 40 50
从输出结果可以看出,原始缓冲区和复制后的缓冲区存在相同的元素。由于复制后的缓冲区是独立的,因此对一个缓冲区的操作不会影响另一个缓冲区。