java队列方法有哪些?什么是循环队列?

BSO 2020-08-25 16:42:30 java常见问答 9807

今天跟大家来具体介绍一下java队列方法有哪些,以及各种方法的简要说明。同时为大家简单概述一下什么是循环队列。

接下来为大家介绍两种队列方法,一种是基于内存的,一种是基于数据库的。

我们主要介绍的是基于内存的队列。重点了解在Java的并发包中已经提供的BlockingQueue的实现,比较常用的有ArrayBlockingQueue和LinkedBlockingQueue,前者是以数组的形式存储,后者是以Node节点的链表形式存储。

BlockingQueue队列常用的操作方法有两种,第一种是往队列中添加元素:add(),put(),offer();第二种是从队列中取出或者删除元素:remove()element() peek()pool()take()。

下面详细的说明一下每种方法的含义:

1.offer():往队列添加元素。如果队列已满直接返回false,队列未满则直接插入并且返回true;

2.add():对offer()方法的简单封装。如果队列已满,抛出异常newIllegalStateException("Queue full");

3.put():往队列里插入元素,如果队列已经满,则会一直等待,直到队列为空然后插入新元素,或者线程被中断抛出异常;

4.remove():直接删除队头的元素;

5.peek():直接取出队头的元素,并不删除。

6.element():对peek方法进行简单封装,如果队头元素存在则取出并不删除,如果不存在抛出异常NoSuchElementException();

7.pool():取出并删除队头的元素,当队列为空,返回null;

8.take():取出并删除队头的元素,当队列为空,则会一直等待直到队列有新元素可以取出,或者线程被中断抛出异常。

需要额外注意的是,offer()方法一般跟pool()方法相对应,put()方法一般跟take()方法相对应。日常开发过程中offer()与pool()方法使用率相对较高。

接下来为大家简单概述一下循环队列的含义。

循环队列是为了解决队列不满却不能插入新数据项的问题,可以让队头队尾指针绕回到数组开始的位置。有时也被称为“缓冲环”。

本文主要介绍java队列方法中基于内存的操作方式,想要了解更多关于队列的常见问题,敬请关注奇Q工具网。

推荐阅读:

java队列实现方式实例展示,什么是阻塞队列?

java队列处理高并发怎么实现?

java队列和栈的区别有哪些?