gpt4 book ai didi

java - Java中的最优路径(tsp)

转载 作者:行者123 更新时间:2023-12-02 02:57:24 28 4
gpt4 key购买 nike

我是 Java 新手,正在尝试获取多个城市之间的最短路径。

  • 从某个点(城市)开始,经过所有其他城市,结束同一城市

从 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 },
  • 输出可能是最佳路线:City1--> City3--> City2 --> City4 ....

我的问题是如何实现 City 类,有什么建议吗?

最佳答案

忽略问题标题并直接回答您的实际问题:

  • 我建议将名称更改为City。看起来这个类是为了代表一个城市而不是一个任意的点。
  • 除非有某种原因需要通过 setter/getter 公开纬度和经度,否则我建议不要这样做。最好将它们封装在自己的不可变类中,并与该类中的位置相关的任何逻辑。

所以我建议类似:

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 的答案)。

关于java - Java中的最优路径(tsp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42875218/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com