Java IntBuffer duplicate()方法及实例

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,

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程