Queue源码分析

1、简介

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

还未写完,晚上继续写。java

2、父类

3、增长元素

  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);复制代码

4、删除元素

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

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

5、获取头元素

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

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

6、总结

相关文章
相关标签/搜索