PriorityQueue pq =新的PriorityQueue <>(); 假设priorityQueue pq的大小为N,那么pq.remove()的时间复杂度是多少?
是O(log N)还是O(N)?
答案 0 :(得分:5)
来自the documentation of PriorityQueue
:
[...]
实施说明:此实现为入队和出队方法(
offer
,poll
,remove()
和add
)提供O(log(n))时间;remove(Object)
和contains(Object)
方法的线性时间;以及检索方法(peek
,element
和size
)的恒定时间。[...]
但是,应该指出,这不是任何接口合同的一部分。因此,这是一个实现细节。因此,它可能会更改,恕不另行通知,或者使用非Oracle JDK时,因此不应依赖。