Я нахожусь в поиске структуры данных, предпочтительно в Java, для хранения непрерывных временных интервалов и эффективного обновления и удаления.
Эти интервалы могут быть сгруппированы и при выполнении операции группа будет играть роль.
Данные выглядят как
{ [1, 3), [3, 5), [5, 8), [8, 10), [10, 12), [12, 15)... }
First 3 intervals are Group1 and second 3 intervals are Group2 like continue...
Типичные операции над этой структурой данных будут
- Добавить новый интервал с в группе: [4, 6)
Результат должен быть:
{ [1, 3), [3, 4), [4, 6), [6, 8), [8, 10), [10, 12), [12, 15)... }
* there is no change is Group 2.
- Добавить новый интервал через: [4, 6)
Результат: это должно распространяться и на другие группы.
- Интервал удаления также можно выполнить в группе или из всех групп.
Таким образом, любые изменения в этих интервалах должны толкать или тянуть другие интервалы.
Пожалуйста, предложите мне эффективную структуру данных для этого.