当前位置: 代码迷 >> java >> 压缩双精度数组中的值(不是内存压缩)
  详细解决方案

压缩双精度数组中的值(不是内存压缩)

热度:54   发布时间:2023-08-02 10:37:45.0

我试图弄清楚如何压缩一个doubles array ,当我用谷歌搜索时,似乎只想压缩一个数组在内存中的大小。

我想压缩数组的实际值,因此基本上减少了数组的长度,并且值的范围保持不变。

我的意思很难解释,下面是一个例子:

{1, 2, 3, 4, 5, 6, 7, 8}压缩为2的数组将变为

double[] {0.0, 2.0, 4.0, 8.0}

压缩为0f 0.5的系数将变为

double[] {0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0}

抱歉,如果重复的话,我进行了研究,但没有发现任何结果。

谢谢。

如果你想做一个在java中做到这一点的方法,我有个建议...

double[] compressDoubleArray(double[] orgArray, double compFactor){
    Arrays.sort(orgArray);
    double maxValue = orgArray[orgArray.length - 1];
    double minValue = orgArray[0];
    int i = 0;
    double[] newArray = new double[orgArray.length/compFactor];
    while(minValue <= maxValue){
        newArray[i] = minValue;
        minValue += compFactor;
        i++;
    }
    return newArray;
}

请记住,这只是我放在一起的一些代码,您可能需要对其进行一些处理才能获得所需的效果。

  相关解决方案