ブノワ・セガン
私はいくつかのバイナリオブジェクトを持っているbyte[]
と私はそれらを変換する必要がありfloat[]
、それらにいくつかの計算を実行する前に。
私の現在のアプローチは以下の通りであります:
bytes[] binaryData;
float[] docVector = new float[vectorSize];
ByteBuffer.wrap(binaryData).asFloatBuffer().get(docVector);
これは機能しますが、私の知る限り理解し、それが元の配列のコピーを作成し、それはバイナリ配列の同じメモリアドレスを指しているfloat配列を取得することは可能でしょうか?例えばPythonとnumpyの1缶では、メモリ内の同じデータのビューを取得するために、次の操作を行います。
import numpy as np
binary_data = np.zeros(40, dtype=np.uint8)
float_array = binary_data.view(np.float32)
TALEX:
これは、Javaでは不可能です。
似た何かをする唯一の方法は、私たちにあるフライ級パターン
EDIT
私は間違って名前を「フライ」(@AdrianShumのおかげで)使用しました。私が意味することは、このようなクラスです。
class FloatArray {
byte[] buff;
void set(int index, float value) { ... }
float get(int index) { ... }
}