Java DoubleBuffer array()方法及示例

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

Java DoubleBuffer array()方法及示例

java.nio.DoubleBuffer 类的 array() 方法是用来返回支持这个缓冲区的双数组。对这个缓冲区内容的修改将导致返回的数组的内容被修改,反之亦然。在调用此方法之前,先使用Invoke()和hasArray()方法,以确保此缓冲区有一个可访问的支持阵列。

语法:

public final float[] array()

返回值: 该方法返回 支持该缓冲区的数组

异常: 如果这个缓冲区是由数组支持的,但是是只读的,这个方法会抛出 ReadOnlyBufferException

下面的程序说明了array()方法。

例子 1 :

// Java program to demonstrate// array() method  import java.nio.*;import java.util.*;  public class GFG {    public static void main(String[] args)    {          // Declaring the capacity of the DoubleBuffer        int capacity = 10;          // Creating the DoubleBuffer        try {              // creating object of Doublebuffer            // and allocating size capacity            DoubleBuffer db = DoubleBuffer.allocate(capacity);              // putting the value in Doublebuffer            db.put(8.56F);            db.put(2, 9.61F);            db.rewind();              // getting array from db DoubleBuffer using array() method            double[] dbb = db.array();              // printing the DoubleBuffer db            System.out.println("DoubleBuffer:  "                               + Arrays.toString(dbb));        }          catch (IllegalArgumentException e) {              System.out.println("IllegalArgumentException catched");        }          catch (ReadOnlyBufferException e) {              System.out.println("ReadOnlyBufferException catched");        }    }}

输出:

DoubleBuffer:  [8.5600004196167, 0.0, 9.609999656677246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

例2 :

// Java program to demonstrate// array() method  import java.nio.*;import java.util.*;  public class GFG {    public static void main(String[] args)    {          // Declaring the capacity of the db        int capacity1 = 10;          // Declaring the capacity of the db1        int capacity2 = 5;          // Creating the DoubleBuffer        try {            //            // db            //            // creating object of Doublebuffer db            // and allocating size capacity            DoubleBuffer db = DoubleBuffer.allocate(capacity1);              // putting the value in db            db.put(9.56F);            db.put(2, 7.61F);            db.put(3, 4.61F);            db.rewind();              // print the DoubleBuffer            System.out.println("DoubleBuffer db: "                               + Arrays.toString(db.array()));              //            // db1            //            // creating object of Doublebuffer db1            // and allocating size capacity            DoubleBuffer db1 = DoubleBuffer.allocate(capacity2);              // putting the value in db1            db1.put(1, 4.56F);            db1.put(2, 6.45F);            db1.rewind();              // print the DoubleBuffer            System.out.println("\nDoubleBuffer db1:  "                               + Arrays.toString(db1.array()));              // Creating a read-only copy of DoubleBuffer            // using asReadOnlyBuffer() method            DoubleBuffer readOnlyDb = db.asReadOnlyBuffer();              // print the DoubleBuffer            System.out.print("\nReadOnlyBuffer DoubleBuffer: ");              while (readOnlyDb.hasRemaining())                System.out.print(readOnlyDb.get() + ", ");              // try to change readOnlyDb            System.out.println("\n\nTrying to get the array"                               + " from ReadOnlyDb for editing");            Arrays.toString(readOnlyDb.array());        }        catch (IllegalArgumentException e) {            System.out.println("IllegalArgumentException catched");        }        catch (ReadOnlyBufferException e) {            System.out.println("Exception thrown: " + e);        }    }}

输出:

DoubleBuffer db: [9.5600004196167, 0.0, 7.610000133514404, 4.610000133514404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]DoubleBuffer db1:  [0.0, 4.559999942779541, 6.449999809265137, 0.0, 0.0]ReadOnlyBuffer DoubleBuffer: 9.5600004196167, 0.0, 7.610000133514404, 4.610000133514404, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Trying to get the array from ReadOnlyDb for editingException thrown: java.nio.ReadOnlyBufferException

相关推荐