JAVA Queue

概述

Queue接口与List、Set同一级别,都是继承了Collection接口

Queue,单向队列,是一种特殊的线性表,先入先出(FIFO)的数据结构

类似下图安检的行李,先进入的,先出去

常用方法

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

实现类

实现类较多,这里只介绍一种

LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。

例子

public class Main {
    public static void main(String[] args) {
        //add()和remove()方法在失败的时候会抛出异常(不推荐)
        Queue<String> queue = new LinkedList<String>();
        //添加元素
        queue.offer("a");
        queue.offer("b");
        queue.offer("c");
        queue.offer("d");
        queue.offer("e");
        for(String q : queue){
            System.out.println(q);
        }
        System.out.println("===");
        System.out.println("poll="+queue.poll()); //返回第一个元素,并在队列中删除
        for(String q : queue){
            System.out.println(q);
        }
        System.out.println("===");
        System.out.println("element="+queue.element()); //返回第一个元素 
        for(String q : queue){
            System.out.println(q);
        }
        System.out.println("===");
        System.out.println("peek="+queue.peek()); //返回第一个元素 
        for(String q : queue){
            System.out.println(q);
        }
    }
}

原文出处:/show_1EF4sLRYsujv.html