В настоящее время я работаю над проектом симуляции поезда, и у меня есть список, в котором я сохраняю все треки:
private List<Track> tracks;
public void addTrack(Track track) {
this.tracks.add(track);
}
public void removeTrack(Track track) {
if (!tracks.contains(track)) {
this.tracks.remove(track);
} else {
Terminal.printError("track with id " + track.getId() + " doesn't exist.");
}
}
Я хочу назначить каждому треку идентификатор при его добавлении (начиная с 1 ). Кроме того, всегда выбирается следующий бесплатный идентификатор. Например, если назначены идентификаторы 1,3,4,5, используется следующий идентификатор 2.
E. g.:
Добавить трек ... -> ID: 1
Добавить трек ... -> ID: 2
Удалить трек 1
Добавить трек ... -> ID: 1
Я бы использовал карту и каждый раз, когда добавлял новый трек, увеличивал счетчик на единицу. Однако, если я удалю ID и добавлю новую дорожку, будут "пробелы".
Какой хороший способ сделать это?