源码解读--Queue

21 篇文章 0 订阅
13 篇文章 0 订阅

上一篇讲了,这一篇来简单讲讲队列,这java中,队列比栈啰嗦一点,queue被设计成了一个接口,它分为阻塞式和非阻塞式。阻塞队列与非阻塞队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列。java源码系列


里面有五个方法:

boolean add(E e);  //添加尾部元素
boolean offer(E e);  //这个也是添加尾部方法,如果是有容量限制的队列,这个方法比add要好一点
E remove();  //移除头部元素,如果队列是空,将会抛出异常
E poll();  //移除头部元素,如果队列是空,返回null,不会抛出异常
E element();  //获取队列头部元素,不会移除,如果队列是空,会抛出异常
E peek();   //获取队列头部元素,不会移除,如果队列是空,返回null,不会抛出异常
java中Queue的实现有很多,记住最主要的一点,队列是尾部插入数据,从头部开始删除,也就常说的先进先出或者后进后出。这里面没有往下深入讲解,原理清楚了,还怕掌握不了吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值