2022更文挑战14-数据结构之队列

136 阅读2分钟

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」。

数据结构之队列

前文

本文是对于队列数据结构的一些个人理解,主要针对java中的使用。由于涉及到个人总结的内容,如果有不准确的内容,还请见谅。

队列

所谓队列,可以结合栈这种数据结构来理解。相对于栈的数据先进后出,后进先出的特性,队列的数据主要是先进先出,后进后出。可以结合实际来理解一下,例如在食堂排队打饭。先开始排队的人能够先打饭,后排队的同学只能后打饭。也就是对于队列这种数据结构,数据具有先来后到的素质。数据的消费顺序会依据数据的生产顺序决定。

对于队列这种数据结构的应用,在开发中十分常用。而且不仅仅有代码中直接的应用,在其他的存储结构等内容中同样会经常应用到。举例来说,现在很常用的消息队列,就是在队列基础上发展出来的另一种应用。例如kafka、rabbitMq等等,其核心原理也都是消息的队列化处理,大致符合先进先出的队列思想。同样,还有redis的pub、sub模式,也可以认为是队列消息的另一种变化。每次接收到消息时,将其放入消息队列中。而当另一端有接收者消费时,也会按照队列的数据顺序进行消费。

在java中,同样有一个类专门用于队列的消息处理,java.util.Queue。当需要使用队列数据结构时,可以直接调用该类。它提供了若干队列操作方法,例如add、remove、offer等等。通过对于这些方法的调用,可以将数据放入队列中,数据会符合先进先出的结构方式。经过该类对于数据的操作,即可实现目标数据结合队列的应用。

后记

  • 千古兴亡多少事?悠悠。不尽长江滚滚流。