信息发布→ 登录 注册 退出

Java 数据结构与算法系列精讲之队列

发布时间:2026-01-11

点击量:
目录
  • 概述
  • 队列
  • 队列实现
    • enqueue 方法
    • dequeue 方法
    • main
  • 完整代码

    概述

    从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章.

    队列

    队列 (Queue) 遵循先进先出的原则 (First-In-First-Out). 举个例子, 早上我们排队买早餐的时候, 先排的人先买后排的人后买.

    队列只能在队首进行删除操作, 在队尾进行插入操作.

    队列实现

    enqueue 方法

    // 入队
    public void enqueue(E element) {
        array.add(array.size(), element);
    }
    

    dequeue 方法

    // 出队
    public E dequeue() {
        E element = array.get(0);
        array.remove(0);
        return element;
    }
    

    main

    public static void main(String[] args) {
        // 创建队列
        Queue<Integer> queue = new Queue<>();
    
        // 存入5个元素
        for (int i = 0; i < 5; i++) {
            queue.enqueue(i);
            System.out.println(queue);
        }
    
        // 取出5个元素
        for (int i = 0; i < 5; i++) {
            queue.dequeue();
            System.out.println(queue);
        }
    }
    

    输出结果:

    Queue{array=[0]} Queue{array=[0, 1]} Queue{array=[0, 1, 2]} Queue{array=[0, 1, 2, 3]} Queue{array=[0, 1, 2, 3, 4]} Queue{array=[1, 2, 3, 4]} Queue{array=[2, 3, 4]} Queue{array=[3, 4]} Queue{array=[4]} Queue{array=[]}

    完整代码

    import java.util.ArrayList;
    
    public class Queue<E> {
    
        private ArrayList<E> array;
    
    
        // 无参构造
        public Queue() {
            array = new ArrayList<>(10);
        }
    
        // 有参构造
        public Queue(int capacity) {
            array = new ArrayList<>(capacity);
        }
    
        // 入队
        public void enqueue(E element) {
            array.add(array.size(), element);
        }
    
        // 出队
        public E dequeue() {
            E element = array.get(0);
            array.remove(0);
            return element;
        }
    
        // 队列是否为空
        public boolean isEmpty() {
            return array.isEmpty();
        }
    
        // 队列长度
        public int getSize() {
            return array.size();
        }
    
        // toString
        @Override
        public String toString() {
            return "Queue{" +
                    "array=" + array +
                    '}';
        }
    
        public static void main(String[] args) {
            // 创建队列
            Queue<Integer> queue = new Queue<>();
    
            // 存入5个元素
            for (int i = 0; i < 5; i++) {
                queue.enqueue(i);
                System.out.println(queue);
            }
    
            // 取出5个元素
            for (int i = 0; i < 5; i++) {
                queue.dequeue();
                System.out.println(queue);
            }
        }
    }
    
    在线客服
    服务热线

    服务热线

    4008888355

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    打开微信

    微信号已复制,请打开微信添加咨询详情!