Java 中的最佳路径 (tsp)

The optimal path in Java (tsp)

我是 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 },

我的问题和问题是如何实施城市class,有什么建议吗?

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

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

所以我建议如下:

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);
    }
}

这些都是干净简单的 classes,它们只有一个目的,可以使您的代码更易于阅读和更改。它们也是不可变的(即 none 它们的值在构造后发生变化)具有很多优点(有关详细信息,请参阅 this question 的答案)。