今天跟大家来具体介绍一下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工具网。
推荐阅读: