Java 使用for¿创建FloatBuffer数组;覆盖值?

Java 使用for¿创建FloatBuffer数组;覆盖值?,java,floatbuffer,Java,Floatbuffer,我正在创建一个带有for循环的FloatBuffers数组,如下所示: FloatBuffer[] buffer = new FloatBuffer[sizebuffer]; float[] farray = new float[sizeArray]; for(int i=0;i<sizebuffer;i++){ for(int j=0;j<sizeArray;j++){ farray[j]= I get the float values from other

我正在创建一个带有for循环的FloatBuffers数组,如下所示:

FloatBuffer[] buffer = new FloatBuffer[sizebuffer];

float[] farray = new float[sizeArray];

for(int i=0;i<sizebuffer;i++){
    for(int j=0;j<sizeArray;j++){

     farray[j]= I get the float values from other buffer....
    }

    buffer[i]= FloatBuffer.wrap(farray);  (*)

}
FloatBuffer[]buffer=新的FloatBuffer[sizebuffer];
float[]farray=新的float[sizeArray];

for(int i=0;i的
FloatBuffer.wrap
方法有效地保留了传递给它的数组。因此,所有的缓冲区都将以for循环中最后处理的值结束。避免此问题的一个简单但相对昂贵的方法是在将数组包装到每个缓冲区之前对其进行
System.arraycopy
操作

老实说,当您从外部源读取浮点值时,您应该只使用
put
方法家族中的一个来将浮点值设置到缓冲区中

for(int i=0;i<sizebuffer;i++){
    for(int j=0;j<sizeArray;j++){
        farray[j]= some value from other buffer....
    }

    buffer[i]= FloatBuffer.allocate(farray.length);
    buffer[i].put(farray);
}

for(int i=0;i方法
FloatBuffer.wrap
有效地保留了传递给它的数组。因此,所有的缓冲区都将以for循环中最后处理的值结束。避免此问题的一个简单但相对昂贵的方法是
System.arraycopy
在将数组包装到每个缓冲区之前复制数组

老实说,当您从外部源读取浮点值时,您应该只使用
put
方法家族中的一个来将浮点值设置到缓冲区中

for(int i=0;i<sizebuffer;i++){
    for(int j=0;j<sizeArray;j++){
        farray[j]= some value from other buffer....
    }

    buffer[i]= FloatBuffer.allocate(farray.length);
    buffer[i].put(farray);
}

for(inti=0;i这是JavaDOC中描述的内容

公共静态FloatBuffer换行(float[]数组)


这是JavaDOC中所述的内容

公共静态FloatBuffer换行(float[]数组)


感谢您的解释!您完全正确,我本可以直接使用“put”:buffer[I].put(j,float value);更改它并完美地工作。感谢您的解释!您完全正确,我本可以直接使用“put”:buffer[I].put(j,float value);更改它并完美地工作。