Java 数据结构与算法系列精讲之队列
更新时间:2022年02月18日 10:29:09 作者:我是小白呀
这篇文章主要介绍了Java队列数据结构的实现,队列是一种特殊的线性表,只允许在表的队头进行删除操作,在表的后端进行插入操作,队列是一个有序表先进先出,想了解更多相关资料的小伙伴可以参考下面文章的详细内容
概述
从今天开始, 小白我将带大家开启 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); } } }
到此这篇关于Java 数据结构与算法系列精讲之队列的文章就介绍到这了,更多相关Java 队列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
在navicat中导入mysql数据库详细步骤(即.sql后缀的数据库)
Navicat是MySQL非常好用的可视化管理工具,功能非常强大,能满足我们日常数据库开发的所有需求,下面这篇文章主要给大家介绍了关于如何在navicat中导入mysql数据库(即.sql后缀的数据库)的相关资料,需要的朋友可以参考下2023-04-04浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别
以下是对java中ArrayList与Vector的区别以及HashMap与Hashtable的区别进行了详细的解析。需要的朋友可以过来参考下2013-08-08spring boot集成mongodb的增删改查的示例代码
这篇文章主要介绍了spring boot集成mongodb的增删改查的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-03-03
最新评论