在Java中,ArrayBuffer
是ByteBuffer
的一個子類,用于表示固定大小的原始字節緩沖區。要將一個ArrayBuffer
轉換為其他數據類型,您需要使用相應的包裝類(如IntegerBuffer
、DoubleBuffer
等)。以下是一些示例:
ArrayBuffer
轉換為int[]
數組:import java.nio.ByteBuffer;
import java.nio.IntBuffer;
public class ArrayBufferToIntArray {
public static void main(String[] args) {
// 創建一個包含4個整數的ArrayBuffer
ByteBuffer buffer = ByteBuffer.allocate(4 * Integer.BYTES);
buffer.putInt(1);
buffer.putInt(2);
buffer.putInt(3);
buffer.putInt(4);
// 將ArrayBuffer轉換為IntBuffer
IntBuffer intBuffer = buffer.asIntBuffer();
// 將IntBuffer轉換為int[]數組
int[] intArray = new int[intBuffer.remaining()];
intBuffer.get(intArray);
// 輸出結果
System.out.println("intArray: " + Arrays.toString(intArray));
}
}
ArrayBuffer
轉換為double[]
數組:import java.nio.ByteBuffer;
import java.nio.DoubleBuffer;
public class ArrayBufferToDoubleArray {
public static void main(String[] args) {
// 創建一個包含4個雙精度浮點數的ArrayBuffer
ByteBuffer buffer = ByteBuffer.allocate(4 * Double.BYTES);
buffer.putDouble(1.1);
buffer.putDouble(2.2);
buffer.putDouble(3.3);
buffer.putDouble(4.4);
// 將ArrayBuffer轉換為DoubleBuffer
DoubleBuffer doubleBuffer = buffer.asDoubleBuffer();
// 將DoubleBuffer轉換為double[]數組
double[] doubleArray = new double[doubleBuffer.remaining()];
doubleBuffer.get(doubleArray);
// 輸出結果
System.out.println("doubleArray: " + Arrays.toString(doubleArray));
}
}
這些示例展示了如何將ArrayBuffer
轉換為其他數據類型。請注意,這些示例使用了ByteBuffer
的asIntBuffer()
和asDoubleBuffer()
方法來創建相應的包裝緩沖區。然后,您可以使用包裝緩沖區的remaining()
和get()
方法將數據復制到目標數組中。