2015-05-08 3 views
0

Итак, у меня есть более 5000 координат корабля, они долготы & Локальные координаты. Мне интересно, что будет лучшим способом сохранить их для каждого корабля. У каждого корабля будет неизвестное количество координат.
Первоначально я думал двойной 2D массив тоже похоже:Сохранение значений долготы и широты

double [][] array = new double[][]; 

Но я понятия не имею, о размере мне будет нужно.
Не знаю, будет ли работать Hashmap, так как нет реального «ключа», я думал ArrayList из List, но я не был уверен в реализации и был бы самым жизнеспособным вариантом.

+4

Начните с созданием координат класса, содержащей широту и долготу. Затем, если вам нужен список координат с переменной длиной, используйте Список . –

+0

В чем проблема? Это карта кораблей к их спискам пар lat/lng. Вам это действительно нужно в памяти? –

+0

Является ли это проблемой реальной жизни или проблемой школы/обучения? Если это проблема реальной жизни, я бы предложил начать с разработки таблиц базы данных – ControlAltDel

ответ

3

Осуществите 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)); 
+2

Я считаю, что (90, 180) координаты являются незаконными для позиции судна: они полностью покрыты льдом :) –

+0

И я просто удалил свой комментарий;) – m0skit0

1

Возможно, hashmap не sobad afterall. Учти это?

static class Coords { 
... 
} 

Map<Coords, String> map = new HashMap<Coords, String>(); 
map.put(new Coords(1700, 1272), "Some_ship"); 
+1

Необходимо реализовать 'hashCode' и' equals' для 'Coords' ... Не выглядит хорошей идеей, если OP действительно не разъясняет, для чего предназначена карта. – m0skit0

0
class Ship { 
    ArrayList<Coordinate> coordinates; 
} 

ArrayList<Ship> ships; 
0

Не имея фрагмент файла данных для его просмотра трудно ответить на этот вопрос. ArrayList будет казаться идеальным и создавать объекты кораблей с их координатами.

Если вы хотите сделать hashmap, я предполагаю, что лучшим ключом будет корабль.