Java IntBuffer duplicate()方法及实例

来源:这里教程网 时间:2026-02-17 20:52:22 作者:

Java IntBuffer duplicate()方法及实例

java.nio.IntBuffer 类的 diplicate() 方法用于创建一个新的IntBuffer,它与给定的缓冲区的内容相同,在所有方面都相同。

语法

public abstract IntBuffer duplicate()

返回值: 该方法返回承载先前IntBuffer内容的 新IntBuffer

下面是一些例子来说明 duplicate() 方法。

例子1: 直接使用IntBuffer

// Java program to demonstrate duplicate() method  import java.nio.*;import java.util.*;  public class GFG {    public static void main(String[] args)    {          // Declaring the capacity of the IntBuffer        int capacity = 10;          // Creating the IntBuffer        try {              // creating object of Intbuffer            // and allocating size capacity            IntBuffer ib1 = IntBuffer.allocate(capacity);              // putting the value in Intbuffer            ib1.put(8);            ib1.put(2, 9);            ib1.rewind();              // print the Original IntBuffer            System.out.println("Original IntBuffer:  "                               + Arrays.toString(ib1.array()));              // Creating a duplicate copy of IntBuffer            // using duplicate() method            IntBuffer ib2 = ib1.duplicate();              // print the duplicate copy of IntBuffer            System.out.print("Duplicate IntBuffer: "                             + Arrays.toString(ib2.array()));        }          catch (IllegalArgumentException e) {            System.out.println("IllegalArgumentException catched");        }          catch (ReadOnlyBufferException e) {            System.out.println("ReadOnlyBufferException catched");        }    }}

输出:

Original IntBuffer:  [8, 0, 9, 0, 0, 0, 0, 0, 0, 0]Duplicate IntBuffer: [8, 0, 9, 0, 0, 0, 0, 0, 0, 0]

实例2: 使用只读的intbuffer

// Java program to demonstrate// duplicate() method// using read-onlyIntbuffer  import java.nio.*;import java.util.*;  public class GFG {      public static void main(String[] args)    {          // Declaring the capacity of the IntBuffer        int capacity = 10;          // Creating the IntBuffer        try {              // creating object of Intbuffer            // and allocating size capacity            IntBuffer ib1 = IntBuffer.allocate(capacity);              // putting the value in Intbuffer            ib1.put(8);            ib1.put(2, 9);            ib1.rewind();              // print the Original IntBuffer            System.out.println("Original IntBuffer:  "                               + Arrays.toString(ib1.array()));              // Creating a read-only copy of IntBuffer            // using asReadOnlyBuffer() method            IntBuffer readonly = ib1.asReadOnlyBuffer();              // print the read-only copy of IntBuffer            System.out.print("read-only IntBuffer:  ");              while (Readonly.hasRemaining())                System.out.print(readonly.get() + ", ");              System.out.println("");              // Rewinding the readonly IntBuffer            readonly.rewind();              // Creating a duplicate copy of IntBuffer            // using duplicate() method            IntBuffer ib2 = readonly.duplicate();              // print the duplicate copy of IntBuffer            System.out.print("Duplicate copy of read-only IntBuffer:  ");              while (ib2.hasRemaining())                System.out.print(ib2.get() + ", ");              System.out.println("");        }          catch (IllegalArgumentException e) {            System.out.println("IllegalArgumentException catched");        }          catch (ReadOnlyBufferException e) {            System.out.println("ReadOnlyBufferException catched");        }    }}

输出:

Original IntBuffer:  [8, 0, 9, 0, 0, 0, 0, 0, 0, 0]Read-only IntBuffer:  8, 0, 9, 0, 0, 0, 0, 0, 0, 0, Duplicate copy of read-only IntBuffer:  8, 0, 9, 0, 0, 0, 0, 0, 0, 0,

相关推荐