JDK中是否有支持恒定时间删除的排序数据结构



我有一个任务要不断地将项目添加到TreeMap中,并且当某些条件为在此项目上遇到。

我知道树映射的复杂性在插入/删除中都是O(log-n)。自从该任务保存了已删除的项目的所有信息,包括:键、值以及可能的位置信息。如果JDK的数据结构支持删除具有位置信息的元素,时间复杂度可以是恒定并减少我任务的一半计算时间。

是否有任何一种数据结构支持此功能,删除带有位置的条目,JDK中O(log-n)中其他操作的复杂性?

您还不完全清楚自己的需求,但如果用例是恢复最后一个n插入,那么持久树可能会有所帮助。在每个阶段,树都是不可变的,插入会创建一个与前一状态尽可能多的共同点的新树,因此通过保留对前一状态的引用,您可以在恒定时间内删除插入的元素。

您需要在谷歌上搜索java实现,但它们不在JDK中。

最新更新