概念:

    • 一种线性结构
    • 相比数组,队列对应的操作是数组的子集
    • 只能从一端(队尾)添加元素,只能从另一端(队首)取出元素

    特点:

    • 是一种先进先出的数据结构
    • First In First Out(FIFO)

    实现:

    1. void offer(E)/offerLast(E) —— 添加
    2. E poll()/pollFirst() —— 取出
    3. E peek()/peekFirst() —— 查看队首元素
    4. int size() —— 队列元素个数
    5. boolean isEmpty() —— 是否为空

    注意:

    • java中虽然有Queue接口,但java并没有给出具体的队列实现类。
    • java中的LinkedList类实现了Queue接口,所以使用队列的时候,一般采取LinkedList
    • 因为LinkedList是双向链表,可以很方便的实现队列的所有功能。

    代码:

    1. package com.qingFeng;
    2. import java.util.LinkedList;
    3. public class Queue {
    4. public static void main(String[] args) {
    5. LinkedList<Integer> Integer = new LinkedList<>();
    6. for (int i = 0 ; i <= 1000 ; i ++){
    7. Integer.offer(i);
    8. }
    9. System.out.println(Integer.size());
    10. int size = Integer.size();
    11. for (int i = 0 ; i < size ; i ++){
    12. System.out.println(Integer.peek());
    13. Integer.poll();
    14. }
    15. System.out.println(Integer.isEmpty());
    16. }
    17. }