问题描述
我试图弄清楚如何压缩一个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}
抱歉,如果重复的话,我进行了研究,但没有发现任何结果。
谢谢。
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;
}
请记住,这只是我放在一起的一些代码,您可能需要对其进行一些处理才能获得所需的效果。