队列

 

1.概念

      队列是一种先进先出(FIFO)的线性结构。

2.关于队列的相关名词

  • 队头:进行删除数据的端
  • 队尾:进行添加数据的端
  • 入列:添加数据
  • 出列:取出数据
  • 空队列:没有存储数据

3.工作原理

      队列使用了两个指针,一个指向队头,负责对数据进行删除操作;一个指向队尾,负责对数据进行添加操作。最好理解的例子就是去排队,比如去食堂打饭,先来的肯定先排在最前面,当打完饭他就得离开这条队伍,即出列;然后他后面的人就继续走上去打饭,而后来的人需要从这条队伍的尾部排起,即入列。别跟我扯你能插队。

4.Java中使用队列

      java有提供Queue,最符合普通的队列是它的一个实现类:linkedList,你没看错,就是它,它是一个双向链表实现的,所以使用好方法即可做为栈,也可以作为队列来使用。

5.代码

import java.util.LinkedList;
import java.util.Queue;
public class TestQueen {
    public static void test1() {
        LinkedList<Integer> queue = new LinkedList<Integer>();
        // 入列,添加到队尾
        queue.add(1);
        queue.add(2);
        queue.add(3);
        queue.add(4);
        // 使用add或者offer都可以,两者有一个区别,如果当队列满列了,使用add添加数据则会抛出异常,使用offer会返回false
        queue.offer(5);
        while(!queue.isEmpty()) {
            // 出列,删除队头的数据
            System.out.print(queue.poll() + " ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
        test1();
    }
}
posted @ 2020-01-12 20:43  flunggg  阅读(174)  评论(0编辑  收藏  举报