Как хранить данные расписания движения транспорта в программе
Никак не могу определиться, как хранить данные расписания движения транспорта. Поискал, почитал по вопросу, что нашел... но разброс вариантов довольно большой, начиная с того, что все хранить в одном массиве, до создания кучи связанных таблиц (дерева).
Исходные данные такие: название остановки, вид транспорта, маршрут, рейс (для связи расписания с конкретным ТС), название следующей остановки, время прибытия, время отправления.
Подскажите, как лучше хранить вю эту инфу в программе для использования в поиске кратчайшего пути при котором учитывается расписание движения.
Как вариант думал создать класс в котором для каждого конкретного тр. средства и по каждой остановке хранилось инфа с временем прибытия и отправления:
public class Data {
private String Stop; // название остановки
private String Transport; // вид транспорта
private String Route; // маршрут
private String Flight; // рейс транспорта
private int[] timeOut; // время отправления по возрастанию
private int[] timeIn; // время прибытия по возрастанию
...
}
Но все ещё сомневаюсь.... насколько быстрым будет поиск данных по массиву (списку) этих объектов при формирования связей для графа...
Внесение изменений в уже соданное расписание не предполагается.
не хотелось бы в дальнейшем все переделывать, если понадобится что-то добавить в исходные данные, изменить или убрать....
Спасибо.
Пока кода никакого нету.... потому что не определился с форматом хранения расписания для возможно более быстрого поиска (основная проблема) по нему. Обдумывая как из расписания собрать данные в формате ориентированного графа (Узел1 - Узел2 - Вес) может оказаться, что потребуется, для формирования каждой связи просматривать весь массив целиком, что займет нереально много времени.
Построение структуры данных при отсутствии опыта - путь проб и ошибок.
В этом убеждаючь постоянно :) это естественный процесс... но если есть на ориентировать, то бвло бы проще.
А ещё, хранить и использовать - это разные понятия. согласен... но в планах "хранить, чтобы использовать" :)
В целом, меня интересуте даже не код, достаточно предложения, мысли, идеи... чтобы осознать возможные способы и, возможно, это наведет на какие-то свои собственные соображения на данный счет..