zoukankan      html  css  js  c++  java
  • Queue的相关API

    • public interface Queue<E> extends Collection<E> :队列通常是以FIFO(先进先出)方式排序元素。

    •   

      boolean

       add(E e) :将指定的元素插入到此队列中如果当前没有可用空间,则抛出IllegalStateException。

      E

       element() :检索,但不删除,这个队列的头。

      boolean

       offer(E e):如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中。

      E

       peek():检索但不删除此队列的头,如果此队列为空,则返回 null 。

      E

       poll():检索并删除此队列的头,如果此队列为空,则返回 null 。

      E

       remove():检索并删除此队列的头。

      java中虽然有Queue接口,单java并没有给出具体的队列实现类,而Java中让LinkedList类实现了Queue接口,所以使用队列的时候,一般采用LinkedList。因为LinkedList是双向链表,可以很方便的实现队列的所有功能。

      Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。 如果要使用前端而不移出该元素,使用element()或者peek()方法。

      java中定义队列 一般这样定义: Queue<E> queue = new LinkedList<E>();

      当采用LinkedList来实现时,api的使用和对用关系如下:

      队列方法       等效方法
      offer(e)         offer(e)/offerLast(e)    //进队列,将元素加入队列末尾
      poll()            poll()/pollFirst()           //获取队列头的元素并移除
      peek()          peek()/peekFirst()     //获取队列头的元素      

             isEmpty()                 //判断是否为空  

    借鉴原文:https://www.jb51.net/article/112613.htm

  • 相关阅读:
    第三百二十八天 how can I 坚持
    第三百二十七天 how can I 坚持
    第三百二十六天 how can I 坚持
    第三百二十五天 how can I 坚持
    第三百二十四天 how can I 坚持
    第三百二十二天 how can I 坚持
    第三百二十一天 how can I 坚持
    第三百零八至三百二十天 how can I 坚持
    POJ 2346:Lucky tickets
    POJ 3461:Oulipo
  • 原文地址:https://www.cnblogs.com/dongtian-blogs/p/10766994.html
Copyright © 2011-2022 走看看