我正在尝试创建一个方法来检查某些Y坐标的第一个差异,如果第一个差异是相同的,它将采取这些差异并检查第二个差异,我想继续检查,直到我的变量是等于。我的问题是检查我的差异数组中的相等性
public static double[] Difference(double ardY[]) {
double ardDifference[] = new double[5];
for (int j = 0; j < 5; j++) {
ardDifference[j] = ardY[j + 1] - ardY[j];
while (ardDifference[j] != ardDifference[j]) {
for (int i = 0; i < 4; i++) {
ardDifference[i] = ardY[i + 1] - ardY[i];
if (ardDifference[j] == ardDifference[i]) {
return ardDifference;
break;
}
}
}
}
return ardDifference;
}
答案 0 :(得分:1)
我不太确定你在这里要做什么,但是如果你想要计算差异,直到你得到一系列相同的差异,那么你可以通过递归很容易地做到这一点:
public static double[] Difference(double ardY[]) {
double ardDifference[] = new double[ardY.length - 1];
boolean allEqual = true;
double prev;
for (int j = 0; j < ardDifference.length; j++) {
ardDifference[j] = ardY[j + 1] - ardY[j];
if (j != 0) {
allEqual &= prev == ardDifference[j];
}
prev = ardDifference[j];
}
if (allEqual) {
return ardDifference;
} else {
return Difference(ardDifference);
}
}