Вы можете использовать два TreeMaps, один, который отображает ID на объекты, и другой, который отображает временные метки на объекты.
Затем вы можете легко найти объект, основываясь на его идентификаторе или на его метке времени.Вы также можете получить набор объектов, у которых есть временная метка в определенном диапазоне (как вы уже знаете).
Недостатком, очевидно, является необходимость удаления объектов из обеих коллекций.Это, однако, не должно быть так плохо, поскольку каждый объект знает как его идентификатор, так и его метку времени, поэтому, если вы хотите удалить по метке времени, вы получите идентификатор бесплатно, и вам просто придется выполнить еще одну операцию журнала.
Оберните их в свою собственную коллекцию, если хотите.