【发布时间】:2023-03-27 00:44:01
【问题描述】:
在对 RDring 进行测试后,我发现 remove element 有时会失败,并且 移除定时器的时间复杂度是线性的;警报管理器使用 TreeSet 迭代所有要删除的元素。
然后,我查看了 PriorityQueue 的来源,猜想也许可以用它来存储计时器 列表。但我很惊讶,虽然 PriorityQueue 中的删除是在 恒定时间,优先队列中元素的插入也是线性的。 他们没有使用任何树或二进制搜索技术来加速 插入。
如果我想快速删除,那么 PQ 但插入慢。否则我可以使用 TreeSet 用于插入 log-N 但删除速度很慢。是否有任何树或堆支持 插入、删除和查找都以 log-N 速度?
【问题讨论】:
-
谢谢,但我想知道JDK中各种数据结构的复杂性。 url 似乎只描述了数据结构的复杂性。