当前位置: 首页 > news >正文

【数据结构】队列(Queue)

Queue

定义

Java中的队列(Queue)是一种先进先出(FIFO)的数据结构。队列只允许在一段进行插入数据操作,称为入队,在另一端进行删除数据操作,称为出队。我们可以把队列形象看作为排队。在最前面的进行出队,从最后面进行入队。

队列的基本概念

FIFO原则:先进入队列的元素将先离开队列

队头:进行删除操作(出队)的一端

队尾:进行插入操作(入队)的一端

语法定义

public interface Queue<E> extends Collection<E> 

Java中队列的几种实现方式

Java提供了多种队列的实现,以下只是几种常见的队列实现:

1.LinkedList

·LinkedList类实现了Queue接口,因此可以用作队列

·它是一个双向链表,允许在两端进行高效的插入和删除操作

2.ArrayDeque

·ArrayDeque是一个基于动态数组的双端队列实现

·它提供了高效的插入和删除操作,并且没有容量限制(动态扩容)

·与LinkedList相比,ArrayDeque在大多数情况下性能更优,因为它没有链表节点的开销

3.BlockingQueue

·BlockingQueue是Java并发库中的一个队列接口(阻塞队列),提供了线程安全的操作

·它适用于多线程环境,可以通过put()和take()方法阻塞线程,直到队列中有元素可以插入或取出

·常见的实现类有ArrayBlockingQueue、LinkedBlockingQueue等

注意:由于Queue是接口,不能直接创建实例。需要使用其实现类来创建实例。

如:Queue<Integer> queue=new ArrayDeque<>();

其实,在Java中,并不仅仅只有这三种实现方式,还有优先队列等。这三种队列的实现方式后续会专门讲解。

主要方法

入队:将元素添加到队列的末尾,返回boolean值表示是否成功入队

·boolean add(E e):但与offer方法有一点区别,在无法入队时会抛出异常

·boolean offer(E e)

出队:从队列的头部移除并返回元素

·E remove():返回移除的元素,如果队列为空则会抛出异常

·E poll():返回移除的元素,如果队列为空则返回null

查看队首元素:返回队列头部的元素但不移除它

·E element():返回队首元素,如果队列为空则会抛出异常

·E peek():返回队首元素,如果队列为空则返回null

上述便是Queue接口中的所有方法,在其实现类中还有其他方法。如:在ArrayDeque中有size()、isEmpty().....等方法

循环队列与双端队列

1.循环队列

·循环队列是一种基于数组的队列实现,通过"循环"使用数组空间来避免浪费

·它需要额外的逻辑来处理队列的空和满状态,通常通过保留一个位置或使用标记来判断

2.双端队列(Deque)

·双端队列允许在两端进行插入和删除操作,因此它比普通的队列更加灵活

·Java中的Deque接口及其实现类(如ArrayDeque、LinkedList)提供了双端队列的功能

循环队列和双端队列我们后续也会专门进行讲解。在本章,我们需要学习使用Queue的主要方法

相关文章:

  • java面试场景问题
  • 【Vue+python】Vue调用python-fastApi接口实现数据(数值、列表类型数据)渲染
  • 探索C语言中判断字符串循环移位关系的实现
  • Python常见面试题的详解9
  • 【Elasticsearch】multi_match查询
  • domain 网络安全
  • OkHttp工具类
  • Spring Boot 示例项目:从零开始构建 Web 应用
  • SpringCloud-Seata
  • 一个简洁高效的Flask用户管理示例
  • C++--STL库-List
  • 华为昇腾服务器部署deepseek的坑
  • QT移植,交叉编译至泰山派RK3566开发板,.pro文件解析
  • Docker安装Minio对象存储
  • 文 章 索 引
  • MySQL——数据库约束
  • 智能博弈与体系对抗
  • Golang 面试题
  • C#从零开始学习(图文教程),持续更新中~
  • Docker报错:https://registry-1.docker.io/v2/
  • 一个留美学生的思想转向——裘毓麐的《游美闻见录》及其他
  • 多个“首次”!上市公司重大资产重组新规落地
  • 中国物流集团等10家央企11名领导人员职务任免
  • “朱雀玄武敕令”改名“周乔治华盛顿”?警方称未通过审核
  • 龚正会见哥伦比亚总统佩特罗
  • 国家卫健委通报:吊销肖某医师执业证书,撤销董某莹四项证书