我有5000多个船舶坐标,它们是经度和纬度坐标。我想知道为每艘船存储这些坐标的最佳方式是什么。每艘船将拥有未知数量的坐标。
最初,我考虑使用类似于双重2D数组的方式:
double [][] array = new double[][];
但是我不知道我需要多大的尺寸。
我不知道是否可以使用HashMap
,因为没有真正的“键”,我在考虑使用ArrayList
的List
,但我不确定它的实现方式以及是否是最可行的选项。
我有5000多个船舶坐标,它们是经度和纬度坐标。我想知道为每艘船存储这些坐标的最佳方式是什么。每艘船将拥有未知数量的坐标。
最初,我考虑使用类似于双重2D数组的方式:
double [][] array = new double[][];
但是我不知道我需要多大的尺寸。
我不知道是否可以使用HashMap
,因为没有真正的“键”,我在考虑使用ArrayList
的List
,但我不确定它的实现方式以及是否是最可行的选项。
ShipCoordinates
类。public class ShipCoordinates {
public final double latitude;
public final double longitude;
public ShipCoordinates(double lat, double lon) {
latitude = lat;
longitude = lon;
}
}
List<ShipCoordinates> shipCoordinates = new ArrayList<>();
// Example of valid ship coordinates off the coast of California :-)
shipCoordinates.add(new ShipCoordinates(36.385913, -127.441406));
static class Coords {
...
}
Map<Coords, String> map = new HashMap<Coords, String>();
map.put(new Coords(1700, 1272), "Some_ship");
class Ship {
ArrayList<Coordinate> coordinates;
}
ArrayList<Ship> ships;
没有数据文件片段进行查看,很难回答这个问题。ArrayList 似乎是理想的选择,并创建带有坐标的船只对象。
如果您想使用 hashmap,我猜最好的键是船只。
BigDecimal
来表示坐标,而不是使用 doubles/floats。 - Powerlord