我是Java的新手,试图在几个城市之间找到最短路径。
Start
在某个时间点(城市)通过all
其他城市和end
same city
从JSON文件中解析日期:
{ "city": "City1", "latitude": 43.1641506, "longitude": 19.7600896 },
{ "city": "City2", "latitude": 60.4317477, "longitude": 10.0853171 },
{ "city": "City3", "latitude": 21.4317477, "longitude": 16.1854121 },
output
可能是City1的最佳路线 - >请分享帮助 - > City2 - > City4 .... 我的问题和问题是如何实施City类,任何建议?
答案 0 :(得分:2)
忽略问题的标题并直接回答您的实际问题:
City
。看起来这个课程的目的是代表一个城市,而不是一个任意点。所以我建议像:
public class Position {
private final double latitude;
private final double longitude;
public Position(double latitude, double longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
public double distanceTo(Position other) {
...
}
}
public class City {
private final String name;
private final Position position;
public City(String name, double latitude, double longitude) {
this.name = name;
this.position = new Position(latitude, longitude);
}
public double distanceTo(City other) {
return this.position.distanceTo(other.position);
}
}
这些是简洁的简单类,只有一个目的,使您的代码更容易阅读,更容易更改。它们也是不可变的(即它们的值在构造之后没有变化),这有很多优点(详见this question的答案)。