Java 使用for¿创建FloatBuffer数组;覆盖值?
我正在创建一个带有for循环的FloatBuffers数组,如下所示: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
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);更改它并完美地工作。