阅读 162

Queue源码分析

一、简介

         队列是一种特殊的线性表,先进先出的数据结构,即队列有序,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

还未写完,晚上继续写。

二、父类

三、增加元素

  1. /**
     * 将指定的元素插入此队列能否立即这样做,在不违反容量限制,返回{@code true}成功和如果没有目前可用的空间抛出{@code非法状态异常}
     *
     * @param e 被添加的元素
     * @return {@code true} 指定的元素被添加到队列中
     * @throws IllegalStateException 如果元素不能被添加在到这个队列由于目前没有可用的空间,抛出IllegalStateException
     * @throws ClassCastException 如果指定元素的类可以防止它被添加到此队列,抛出ClassCastException
     * @throws NullPointerException 如果指定的元素是null并且此队列不允许空的元素,抛出NullPointerException
     * @throws IllegalArgumentException 如果这个元素的一些属性可以防止它被添加到此队列,抛出IllegalArgumentException
     */
     boolean add(E e);    复制代码

  2. /**
     * 将指定的元素插入此队列能否立即这样做,在不违反容量限制,返回{@code true}将指定元素添加到队列成功和如果没有目前可用的空间{@code false}
     *
     * @param e 被添加的元素
     * @return {@code true} 指定的元素被添加到队列中,{@code flase}  指定的元素不能被添加到队列中
     * @throws ClassCastException 如果指定元素的类可以防止它被添加到此队列,抛出ClassCastException
     * @throws NullPointerException 如果指定的元素是null并且此队列不允许空的元素,抛出NullPointerException
     * @throws IllegalArgumentException 如果这个元素的一些属性可以防止它被添加到此队列,抛出IllegalArgumentException
     */
     boolean offer(E e);复制代码

四、删除元素

  1. /**
     * 检索并删除此队列的头,如果队列是空的,抛出一个异常
     * 
     * @return 队列的头元素
     * @throws NoSuchElementException 如果队列是空,调用remove,抛出NoSuchElementException
     */
     E remove();复制代码

  2. /**
     * 检索并删除此队列的头,如果空队列,返回null
     *
     * @return 队列的头元素, 或者队列空,返回null
     */
     E poll();复制代码

五、获取头元素

  1. /**
     * 检索,但不删除此队列的头元素。这种方法不同于peek(),如果队列为空,它抛出一个异常
     *
     * @return 返回队列的头元素
     * @throws NoSuchElementException 如果队列为空,它抛出一个NoSuchElementException异常
     */
     E element();复制代码

  2. /**
     * 检索,但不删除此队列的头元素, 如果队列空,返回null
     *
     * @return 返回队列的头元素, 或者队列为空返回null
     */
     E peek();复制代码

六、总结