JAVA ·

JAVA Queue(队列)的简单用法

什么是队列

队列是一种先进先出(First In First Out,FIFO)的数据结构 ,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。如果你将两个元素加入队列,先加入的元素将在后加入的元素之前出队。最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素;

简单来说,就是排队,先来的先办事,办完事的就走人,后来的继续等。。

import java.util.LinkedList;
import java.util.Queue;

/**
 * Queue 的简单用法
 * date 2017-06-26 16:05:58
 */
public class TestQuene {
    public static void main(String[] args) {
        // add()和remove()方法在失败的时候会抛出异常(不推荐),具体方法请往下看
        Queue<Integer> queue = new LinkedList<Integer>();
        //添加元素
        for (int i = 1; i <= 5; i++) {
            queue.offer(i);
        }
        for (Integer i : queue) {
            System.out.println(i);
        }
        System.out.println("----------------------------------------------------");
        System.out.println("poll = " + queue.poll()); //返回第一个元素,并在队列中删除
        for (Integer i : queue) {
            System.out.println(i);
        }
        System.out.println("----------------------------------------------------");
        System.out.println("element = " + queue.element()); //返回第一个元素
        for (Integer i : queue) {
            System.out.println(i);
        }
        System.out.println("----------------------------------------------------");
        System.out.println("peek = " + queue.peek()); //返回第一个元素
        for (Integer i : queue) {
            System.out.println(i);
        }
    }
}

输出结果

1
2
3
4
5
----------------------------------------------------
poll = 1
2
3
4
5
----------------------------------------------------
element = 2
2
3
4
5
----------------------------------------------------
peek = 2
2
3
4
5

Process finished with exit code 0

Queue的具体方法说明

  • add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
  • remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
  • element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
  • offer 添加一个元素并返回true 如果队列已满,则返回false
  • poll 移除并返问队列头部的元素 如果队列为空,则返回null
  • peek 返回队列头部的元素 如果队列为空,则返回null
  • put 添加一个元素 如果队列满,则阻塞
  • take 移除并返回队列头部的元素 如果队列为空,则阻塞

参与评论