Как хранить данные расписания движения транспорта в программе

Рейтинг: 0Ответов: 0Опубликовано: 29.06.2023

Никак не могу определиться, как хранить данные расписания движения транспорта. Поискал, почитал по вопросу, что нашел... но разброс вариантов довольно большой, начиная с того, что все хранить в одном массиве, до создания кучи связанных таблиц (дерева).

Исходные данные такие: название остановки, вид транспорта, маршрут, рейс (для связи расписания с конкретным ТС), название следующей остановки, время прибытия, время отправления.

Подскажите, как лучше хранить вю эту инфу в программе для использования в поиске кратчайшего пути при котором учитывается расписание движения.

Как вариант думал создать класс в котором для каждого конкретного тр. средства и по каждой остановке хранилось инфа с временем прибытия и отправления:

public class Data {
private String Stop; // название остановки
private String Transport; // вид транспорта
private String Route; // маршрут
private String Flight; // рейс транспорта
private int[] timeOut; // время отправления по возрастанию
private int[] timeIn; // время прибытия по возрастанию
...
}

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

Внесение изменений в уже соданное расписание не предполагается.

не хотелось бы в дальнейшем все переделывать, если понадобится что-то добавить в исходные данные, изменить или убрать....

Спасибо.


Пока кода никакого нету.... потому что не определился с форматом хранения расписания для возможно более быстрого поиска (основная проблема) по нему. Обдумывая как из расписания собрать данные в формате ориентированного графа (Узел1 - Узел2 - Вес) может оказаться, что потребуется, для формирования каждой связи просматривать весь массив целиком, что займет нереально много времени.

Построение структуры данных при отсутствии опыта - путь проб и ошибок.

В этом убеждаючь постоянно :) это естественный процесс... но если есть на ориентировать, то бвло бы проще.

А ещё, хранить и использовать - это разные понятия. согласен... но в планах "хранить, чтобы использовать" :)

В целом, меня интересуте даже не код, достаточно предложения, мысли, идеи... чтобы осознать возможные способы и, возможно, это наведет на какие-то свои собственные соображения на данный счет..

Ответы

Ответов пока нет.