我正在创建一个简单的程序来计算从文本文件中读取的坐标的邻近距离测量值,我想创建一个方法来计算给定点的曼哈顿距离,例如:
(0,1,1,0,1), (1,0,0,0,1), (0,0,0,1,1)
would result in:
Item1 Item2 Item3
Item1 0 3 3
Item2 3 0 2
Item3 3 2 0
曼哈顿方法:
public static void Manhattan(ArrayList<Points> x) {
ArrayList<Integer> result = new ArrayList<Integer>();
int distance = 0;
for(int ii=0;ii<x.size();ii++) {
for(int jj=0; jj<x.get(ii).coordinates.size();jj++) {
distance = Math.abs(x.get(ii).coordinates.get(jj)) + Math.abs(x.get(ii).coordinates.get(jj));
}
result.add(distance);
}
for(int ii=0;ii<result.size();ii++) {
for(int jj=0; jj<result.size();jj++) {
System.out.print(result.get(ii));
}
System.out.print(" ");
}
}
上课点:
import java.util.ArrayList;
public class Points {
ArrayList<Integer> coordinates = new ArrayList<Integer>();
public Points (ArrayList<Integer> coordinates) {
this.coordinates = coordinates;
}
public ArrayList<Integer> getCoordinates() {
return coordinates;
}
public void setCoordinates(ArrayList<Integer> coordinates) {
this.coordinates = coordinates;
}
}
问题是我在运行该方法时得到了奇怪的结果,有人知道是什么问题吗?
result: 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222 222222222222222