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

时间:2015-07-18 13:38:51

标签: java arrays

我试图找出如何压缩array的{​​{1}},当我用Google搜索时,它似乎只能在内存中压缩数组的大小。

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

我的意思是难以解释,这是一个例子:

值为doubles的数组 压缩2倍将成为

{1, 2, 3, 4, 5, 6, 7, 8}

压缩因子0f 0.5将成为

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

对不起,如果这是重复的,我做了研究,没有发现任何相关内容。

感谢。

1 个答案:

答案 0 :(得分: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;
}

请记住,这只是我扔在一起的一些代码,你可能需要做一些工作才能获得理想的效果。