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

  • 相关阅读:
    新年新气象,用新年的喜庆来迎接的生活
    vs2005中如何发布网站及打包web项目生成安装文件
    完整打印页面控件的解决方案
    vi使用体会
    向ATL DLL中传递C++对象
    CentOS 5.3配置软件源以及CVS服务器
    堆上多维数组的内存管理
    物理坐标与逻辑坐标
    好友列表的实现
    在STL中处理对象指针
  • 原文地址:https://www.cnblogs.com/dongtian-blogs/p/10766994.html
Copyright © 2011-2022 走看看