gpt4 book ai didi

java - 获取 byte[] 数组的 float[] View

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:07:42 25 4
gpt4 key购买 nike

我有一些二进制对象作为 byte[],我需要在对它们执行一些计算之前将它们转换为 float[]

我目前的做法如下:

bytes[] binaryData;
float[] docVector = new float[vectorSize];
ByteBuffer.wrap(binaryData).asFloatBuffer().get(docVector);

这确实有效,但据我所知,它创建了原始数组的副本,是否有可能获得指向二进制数组相同内存地址的 float 组?在 python 和 numpy 中,例如可以执行以下操作来查看内存中的相同数据:

import numpy as np
binary_data = np.zeros(40, dtype=np.uint8)
float_array = binary_data.view(np.float32)

最佳答案

在java中是不可能的。

做类似事情的唯一方法是我们Flyweight图案

编辑

我错误地使用了名称“Flyweight”(感谢@AdrianShum)。我的意思是这样的类:

class FloatArray {
byte[] buff;
void set(int index, float value) { ... }
float get(int index) { ... }
}

关于java - 获取 byte[] 数组的 float[] View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52182072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com