在我调用getDistance(points [i],points [j])的行上,我遇到错误,要求我将getDistance方法参数更改为double而不是array,尽管我认为由于原因我将数组传递给该方法多维数组起作用。
public static void main(String[] args) {
double[][] points = {
{1.0, 2.0, 3.0},
{0.0, 0.0, 2.0},
{1.0, 1.5, 4.0},
{3.0, 2.0, 1.0}
};
for(int i=0; i<points.length; i++){
for(int j=1; j<points[0].length; j++){
getDistance(points[i], points[j]);
}
}
}
public double getDistance(Array points1[], Array points2[]){
double x1 = Array.getDouble(points1, 0);
double x2 = Array.getDouble(points2, 0);
double y1 = Array.getDouble(points1, 1);
double y2 = Array.getDouble(points2, 1);
double z1 = Array.getDouble(points1, 2);
double z2 = Array.getDouble(points2, 2);
double distance = Math.sqrt(Math.pow(x1 - x2, 2) +(Math.pow(y1 - y2, 2) +
(Math.pow(z1 - z2, 2))));
return distance;
}
最佳答案
您的方法getDistance
将两个参数定义为类型Array
,其中调用它的类型是double[]
,这是不相同的。
重写您的getDistance
,如下所示;
public double getDistance(double[] points1, double[] points2){
double x1 = points1[0];
double x2 = points2[0];
double y1 = points1[1];
double y2 = points2[1];
double z1 = points1[2];
double z2 = points2[2];
double distance = Math.sqrt(Math.pow(x1 - x2, 2) +(Math.pow(y1 - y2, 2) +
(Math.pow(z1 - z2, 2))));
return distance;
}