有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我试图找出如何压缩arraydoubles,当我在谷歌上搜索到这个时,它似乎只想到了压缩内存中数组的大小

我想压缩数组的实际值,所以基本上数组的长度减少了,值的范围保持不变

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

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

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

压缩系数为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}

对不起,如果这是一个重复,我做了研究,并没有发现任何关于这一点

谢谢


共 (1) 个答案

  1. # 1 楼答案

    如果你想在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;
    }
    

    请记住,这只是我拼凑的一段代码,您可能需要对其进行一些操作才能获得所需的效果