JDK源码分析-Queue, Deque

 继承结构

Queue接口定义

public interface Queue<E> extends Collection<E> {
  
    // 将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true,
     //如果当前没有可用的空间,则抛出 IllegalStateException。
    boolean add(E e);
   
    //将指定的元素插入此队列(如果立即可行且不会违反容量限制),
    //当使用有容量限制的队列时,此方法通常要优于 add(E),后者可能无法插入元素,而只是抛出一个异常。
    boolean offer(E e);

    //获取并移除此队列的头,如果队列为空,则报java.util.NoSuchElementException
    E remove();

    // 获取并移除此队列的头,如果此队列为空,则返回 null。
    E poll();
    
    //获取队列的头部元素不移除头部  
    //和peek区别,如果队列为空报异常java.util.NoSuchElementException
    E element();
    
    //获取队列的头部元素不移除头部,如果队列为空,则返回null
    E peek();
}

Deque接口定义

 public interface Deque<E> extends Queue<E> {
    
    //队列头部添加元素
    void addFirst(E e);
 
    //将指定元素插入此双端队列的末尾
    void addLast(E e);
 
    // 在不违反容量限制的情况下,将指定的元素插入此双端队列的开头。
    boolean offerFirst(E e);

    // 在不违反容量限制的情况下,将指定的元素插入此双端队列的末尾。
    boolean offerLast(E e);

    //获取并移除此双端队列第一个元素。
    E removeFirst();

    //获取并移除此双端队列的最后一个元素。
    E removeLast();
 
    //获取并移除此双端队列的第一个元素;如果此双端队列为空,则返回 null
    E pollFirst();

    //获取并移除此双端队列的最后一个元素;如果此双端队列为空,则返回 null。
    E pollLast();
   
    // 获取,但不移除此双端队列的第一个元素。
    E getFirst();
 
    //获取,但不移除此双端队列的最后一个元素。
    E getLast();

    //获取,但不移除此双端队列的第一个元素;如果此双端队列为空,则返回 null。
    E peekFirst();

    //获取,但不移除此双端队列的最后一个元素;如果此双端队列为空,则返回 null。
    E peekLast();

    //从此双端队列移除第一次出现的指定元素。
    boolean removeFirstOccurrence(Object o);
    
    //从此双端队列移除最后一次出现的指定元素。
    boolean removeLastOccurrence(Object o);

    //队列尾部添加元素,如果当前没有可用空间,则抛出 IllegalStateException。
    boolean add(E e);

    //将指定元素插入此双端队列所表示的队列(换句话说,此双端队列的尾部),
    //如果可以直接这样做而不违反容量限制的话;如果成功,则返回 true,
    //如果当前没有可用的空间,则返回 false。
    boolean offer(E e);

    //获取并移除此双端队列所表示的队列的头部(换句话说,此双端队列的第一个元素)。
    E remove();
 
    //获取并移除此双端队列所表示的队列的头部(换句话说,此双端队列的第一个元素);
    //如果此双端队列为空,则返回 null。
    E poll();
 
    //获取,但不移除此双端队列所表示的队列的头部(换句话说,此双端队列的第一个元素)。
    E element();

    //获取,但不移除此双端队列所表示的队列的头部(换句话说,此双端队列的第一个元素);
    //如果此双端队列为空,则返回 null。
    E peek();

    //将一个元素推入此双端队列所表示的堆栈(换句话说,此双端队列的头部),
    //如果可以直接这样做而不违反容量限制的话;如果成功,则返回 true,
    //如果当前没有可用空间,则抛出 IllegalStateException。
    void push(E e);

    //从此双端队列所表示的堆栈中弹出一个元素。
    E pop();

    //从此双端队列中移除第一次出现的指定元素。
    boolean remove(Object o);

    //如果此双端队列包含指定元素,则返回 true。
    boolean contains(Object o);

    //返回此双端队列的元素数。
    public int size();

    //返回以恰当顺序在此双端队列的元素上进行迭代的迭代器。
    Iterator<E> iterator();

    //返回以逆向顺序在此双端队列的元素上进行迭代的迭代器。
    Iterator<E> descendingIterator();

}

还未更新完。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值