Java中的队列:java.util.Queue接口

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

Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。
Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。
BlockingQueue 继承了Queue接口,用于处理多线程协同工作的情况。

我们这里只记录最简单的java.util.Queue接口,该接口暴露的方法,根据其出错时候的行为,可以分为两组,抛出异常型和返回特殊值型

  出错抛出异常型 出错返回特殊值型
插入(返回值为true或false) add(e) offer(e)
移除(返回值为移除的元素) remove() poll()
检查(返回值为获取的元素) element() peek()

下面我们做个例子来学习一下:

import java.util.LinkedList;
import java.util.Queue;
class node
{
    node(int xparam,int yparam,int valparam)
    {
        this.x = xparam;this.y = yparam;this.value = valparam;
    }
    int x,y,value;
    public String toString()
    {
        return new StringBuilder("(")
                .append(this.x).append(",")
                .append(this.y).append(",")
                .append(this.value).append(")")
                .toString();
        
    }
}
public class JavaQueue {
    public static void main(String[] args) {
        Queue<node> queue=new LinkedList<node>();
        for(int i=0;i<10;i++)
        {
            queue.offer(new node(i,i,i*i));//入队
        }
        for(int j=0;j<10;j++)
        {
            System.out.println(queue.poll());//出队,按照先后顺序
        }
        
        System.out.println(queue.isEmpty());//队列现在为empty
    }

}
原文地址:https://www.cnblogs.com/mingziday/p/4826539.html