Java队列

在这里插入图片描述

数组模拟队列

在这里插入图片描述

public class 数组模拟队列 {
    public static void main(String[] args) {
        ArrayQueue arrayQueue = new ArrayQueue(2);
        arrayQueue.addQueue(1);
        arrayQueue.addQueue(10);
        System.out.println(arrayQueue.getQueue());
        System.out.println(arrayQueue.hearQueue());
        System.out.println(arrayQueue.getQueue());
        System.out.println(arrayQueue.hearQueue());

    }
}
class ArrayQueue{
    //数组最大容量
    private int maxSite;
    //队列头
    private int front;
    //队列尾
    private int rear;
    //存放数据模拟队列
    private int[]arr;
    //创建队列的构造器
    public ArrayQueue(int arrMaxSize){
        maxSite=arrMaxSize;
        //数组赋值长度
        arr = new int [maxSite];
        front=-1;//初始化头部
        rear=-1;//初始化尾部
    }
    //判断队列是否已满
    public boolean isFull(){
        return rear == maxSite-1;
    }
    //判断队列是否为空
    public boolean isEmpty(){
        return rear == front;
    }
    //添加数据到队列
    public void  addQueue(int n){
        //判断队列是否已满
        if (isFull()){
            System.out.println("队列已满");
            return;
        }
        rear++;
        arr[rear]=n;
    }
    //显示队列的全部数据
    public void showQueue(){
        if (isEmpty()){
            System.out.println("队列为空");
            return;
        }
        for (int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }
    //显示队列的头部数据
    public int hearQueue(){
        //判断
        if (isEmpty()){
            System.out.println("队列空");
            return -1;
        }
        return arr[front+1];
    }
    //取数据
    public int getQueue(){
        //判断
        if (isEmpty()){
            System.out.println("队列空");
            return -1;
        }
        front++;
        return arr[front];
    }

}


Java中的队列方法

        //Java方法实现队列
        Queue<String> queue = new LinkedList<String>();
        //添加元素
        queue.offer("123");
        queue.offer("321");
        queue.offer("213");
        for (String q:queue) {
            System.out.println(q);
        }
        //返回第一个元素然后从队列删除
        System.out.println(queue.poll());
        //返回第一个元素不删除
        System.out.println(queue.element());