从 arrayList 转换为 Buffer

Casting from an arrayList to a Buffer

我正在 java 中编写程序并且需要使用 Buffers。我使用了一个返回数组列表的函数,即嵌套数组,我想将这些数组放入我的缓冲区中。我收到以下错误:

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.nio.DoubleBuffer

有人对如何将数组列表转换为缓冲区有任何想法或解决方案吗?

我相信你可以把它转换成数组,然后再转换成双缓冲区

ArrayList.ToArray()

然后你可以使用wrap(),把它cat到Double Buffer

您不能 一个ArrayList 转换为DoubleBuffer。这两种类型是无关的。您真正能做的唯一一件事就是一次一个地浏览列表值并将它们粘贴到缓冲区中:

ArrayList<Double> values = ...;
DoubleBuffer buffer = ...;

for (Double value : values)
    buffer.put(value); // Auto-unboxing will let this Double -> double work.

你不能使用 DoubleBuffer.wrap(...),尽管它看起来不错,因为它需要 double[],而 ArrayList<Double> 只能很容易地转换为 Double[], 而不是 double[].