欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA队列(Queue)用法附实例讲解

程序员文章站 2024-03-18 11:08:46
...

一、功能

队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。

二、声明

1、声明一个栈的写法,E表示数据类型,name是你给队列起的名字,LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。

Queue <E> name = new LinkedList<E>();

2、实例:声明一个名为queue的Integer队列

Queue<Integer> queue = new LinkedList<Integer>();

三、方法

1、boolean offer(E item)

功能:

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

实例:

queue.offer(0);
queue.offer(1);
queue.offer(2);
System.out.println(queue);

输出结果:

[0, 1, 2]

以下的实例代码省略入队代码。

2、E peek()

功能:

查看此队列顶部的对象,而不从队列中删除它。

实例:

System.out.println(queue);
int top = queue.peek();
System.out.println("top=" + top);
System.out.println(queue);

结果:

[0, 1, 2]

top=0

[0, 1, 2]

3、E poll()

功能:

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

实例:

System.out.println(queue);
int top = queue.poll();
System.out.println("top = "+top);
System.out.println(queue);

结果:

[0, 1, 2]
top = 0
[1, 2]

4、其它

add()、element()、remove()方法与offer()、peek()、poll()目的相同,但是仍有区别。
offer(),add() 区别:
一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。

poll(),remove() 区别:
remove() 和 poll() 方法都是从队列中删除第一个元素。remove() 的行为与 Collection 接口的版本相似, 但是新的 poll() 方法在用空集合调用时不是抛出异常,只是返回 null。因此新的方法更适合容易出现异常条件的情况。

peek(),element()区别:
element() 和 peek() 用于在队列的头部查询元素。与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null。

相关标签: JAVA java