java 队列的使用

java 队列的使用
  • 在Java的并发包中已经提供了BlockingQueue的实现,比较常用的有ArrayBlockingQueue和LinkedBlockingQueue,前者是以数组的形式存储,后者是以Node节点的链表形式存储。至于数组和链表的区别这里就不多说了。
  • BlockingQueue 队列常用的操作方法:

      1.往队列中添加元素: add(), put(), offer()

      2.从队列中取出或者删除元素: remove() element()  peek()   poll()  take()

  • 每个方法的说明如下:
  1.       offer()方法往队列添加元素如果队列已满直接返回false,队列未满则直接插入并返回true;
  2.       add()方法是对offer()方法的简单封装.如果队列已满,抛出异常new IllegalStateException("Queue full");
  3.        put()方法往队列里插入元素,如果队列已经满,则会一直等待直到队列为空插入新元素,或者线程被中断抛出异常.
  4.        remove()方法直接删除队头的元素:
  5.        peek()方法直接取出队头的元素,并不删除.
  6.        element()方法对peek方法进行简单封装,如果队头元素存在则取出并不删除,如果不存在抛出异常NoSuchElementException()
  7.        poll()方法取出并删除队头的元素,当队列为空,返回null;
  8.        take()方法取出并删除队头的元素,当队列为空,则会一直等待直到队列有新元素可以取出,或者线程被中断抛出异常;offer()方法一般跟pool()方法相对应, put()方法一般跟take()方法相对应.日常开发过程中offer()与pool()方法用的相对比较频繁.
本文来源huayang183,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/18530

发表评论