zoukankan      html  css  js  c++  java
  • Queue的poll()和remove()、peek()和element()、offer()和add()

    poll()和remove() 取出队列头

    public E remove() {
            return removeFirst();
        }
    public E removeFirst() {
            final Node<E> f = first;
            if (f == null)
            //没有元素、则抛出异常
                throw new NoSuchElementException();
            return unlinkFirst(f);
        }
    public E poll() {
            final Node<E> f = first;
            //没有元素就返回null
            return (f == null) ? null : unlinkFirst(f);
        }
    

    peek()和element() 返回队列头元素

    在队列为空时, element() 抛出一个异常,而 peek() 返回 null

    offer()和add() 添加元素

    add():

    boolean add(E e)将指定的元素插入到此队列中,如果可以立即执行此操作而不违反容量限制, true在成功后返回 IllegalStateException如果当前没有可用空间,则抛出IllegalStateException。

    异常

    • IllegalStateException - 如果由于容量限制,此时无法添加该元素
    • ClassCastException - 如果指定元素的类阻止将其添加到此队列中
    • NullPointerException - 如果指定的元素为空,并且该队列不允许空元素
    • IllegalArgumentException - 如果此元素的某些属性阻止将其添加到此队列

    offer

    boolean offer(E e)如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中。 当使用容量限制队列时,此方法通常优于add(E) ,这可能无法仅通过抛出异常来插入元素。
    结果 :
    true如果元素被添加到这个队列,否则 false

    异常 :

    • ClassCastException - 如果指定元素的类阻止将其添加到此队列中
    • NullPointerException - 如果指定的元素为空,并且该队列不允许空元素
    • IllegalArgumentException - 如果此元素的某些属性阻止将其添加到此队列
  • 相关阅读:
    nyoj592 spiral grid
    ny788 又见Alice and Bob
    hdoj 1166 敌兵布阵 线段数和树状数组
    nyoj228 士兵杀敌(5)插线问线
    nyoj576 集齐卡片赢大奖(一)
    ny269 VF
    AC Again hdoj 1582 搜索
    nyoj123 士兵杀敌(四)树状数组 插线问点
    CRAVAT: Cancer-Related Analysis of VAriants Toolkit
    第二代无创胎儿基因组分析结果
  • 原文地址:https://www.cnblogs.com/jklixin/p/13456704.html
Copyright © 2011-2022 走看看