Хотя мне не удалось найти библиотеку, которая делает то, что я хотел, вот решение, которое я придумал на случай, если кто-то обнаружит это в будущем:
Я создал тип данных, представляющий интервал, аналогичный к одному, который я нашел в Алгоритмы, 4-е издание Роберта Седжвика и Кевина Уэйна .
Фактическая таблица частот реализована как TreeMap<Interval, Integer>
, поскольку она может сохранять записи в порядок ключей (для реализации Interval
требуется Comparator
). Затем все, что мне нужно было добавить, это метод добавления наблюдений, который увеличивает значение интервала в TreeMap
.
Возможно, это не самый эффективный способ решить эту проблему, но, похоже, он работает для моих целей .