好程序员:一分钟讲清Java队列是什么?及相互关系!

Java队列基于数组和链表实现,提供先进先出的特性。Queue接口定义了基本操作如add、remove和peek。双端队列允许两端插入和移除元素,如LinkedList和ArrayDeque。阻塞队列在满或空时能阻塞线程,实现线程间的同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java队列是一种由数组和链表作为,底层构造的只暴露头和尾操作API的数据结构。因此,队列是被认为是一种受限的数据结构。队列的特性:是先进先出,类似于排队。

 

队列Queue与set和list同级都继承了collection。其次,双端队列接口Duque阻塞队列blocking queue和非阻塞队列AvstractQueue实现了Queue接口。以下简述这三个类型的Java队列!

一、Queue队列

压入元素(添加):add()、offer()

弹出元素(删除):remove()、poll()

获取队头元素(不删除):element()、peek()

  • 双端队列

双端队列顾名思义就是队列的两个端口都能进出。eque实现类是linkedlist,而linkedlist,ArrayDeque、LinkedBlockingDeque,其中linkedlist是最常用的,值得注意的是linkedlist也实现了list接口。

  • 阻塞队列

阻塞队列是一个支持两个附加操作的队列,即在队列为满时,存储元素的线程会等待队列可用。当队列为空时,获取元素的线程会。等待队列为飞空。

  • 各队列的区别与联系

从数据的输入和输出角度来看,队列可以看成是普通和双端两种。普通队列是先进先出,而双端则可以两端进出。从并发角度来看,队列可以看成阻塞和非阻塞两种,阻塞队列能实现阻塞,而非阻塞不能阻塞。阻塞和非阻塞队列,都有普通队列和双端队列特性的实现类。

关注小源,为您带来更多好程序员Java资讯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值