public boolean add(E e)
将指定的元素插入此优先级队列。不能添加null元素。
public boolean offer(E e)
将指定的元素插入此优先级队列。不能添加null元素。
add与offer图解
获取队列顶部元素——仅仅获取,没有删除
获取堆顶元素——队列为空抛异常NoSuchElementException()
peek与element图解
element()和peek()的语义完全相同,都是获取但不删除队首元素,也就是队列中权值最小的那个元素,二者唯一的区别是当方法失败时前者抛出异常,后者返回null
删除堆顶元素——队列为空的时候抛出异常NoSuchElementException()
删除元素:删除堆顶元素——队列为空的时候返回null
remove()与poll()图解
remove()和poll()方法的语义也完全相同,都是获取并删除队首元素,区别是当方法失败时前者抛出异常,后者返回null。由于删除操作会改变队列的结构,为维护小顶堆的性质,需要进行必要的调整。