队列(Queue):遵循FIFO(First In First Out 先进先出)原则
队列只允许在一端进行插入操作,而在另一端进行删除操作。允许插入的端是队列尾,允许删除的是队列头
二、结构示意图
向一个空队列中一次插入a、b、c三个元素

将队列中的元素一个个删除

三、代码示例
LinkedList就实现了Queue接口,我们这里以LinkedList为例
@Test public void test4(){ LinkedList<Integer> queue = new LinkedList<Integer>(); queue.add(1); queue.add(2); queue.add(3); System.out.println(queue.peek()); queue.pop(); System.out.println(queue.peek()); queue.pop(); System.out.println(queue.peek()); queue.pop(); }
代码运行效果如下:

上述代码我们可以发现,队列是先进先出
四、自己动手实现一个简单的队列
package com.zhurouwangzi.entity; ? public class MyQueue { public MyQueue(){ element = new int[20]; size = 0; } private int[] element; private int size; ? public int push(int item){ element[size] = item; size++; return item; } ? public int pop(){ int popData = element[0]; int[] newEle = new int[size-1]; System.arraycopy(element, 1, newEle, 0, size-1); element = newEle; size--; return popData; } ? public int peek(){ return element[0]; } ? public int getSize(){ return size; } }
测试自己写的简单队列
@Test public void test4(){ MyQueue myQueue = new MyQueue(); myQueue.push(1); myQueue.push(2); myQueue.push(3); System.out.println(myQueue.peek()); myQueue.pop(); System.out.println(myQueue.peek()); myQueue.pop(); System.out.println(myQueue.peek()); myQueue.pop(); }
运行效果如下:

转载请注明出处:https://www.cnblogs.com/Infancy/p/12599313.html
原文:https://www.cnblogs.com/Infancy/p/12599313.html