#飞利浦·斯塔克#Java阻塞队列四组API介绍( 二 )
第一组API , 会抛出异常的:一言不合就开干添加元素:add(e):
当队列未满的时候 , 向队列中添加元素正常;当队列满的时候 , 再向队列中添加元素的话 , 会抛出throw new IllegalStateException(\"Queue full\");异常 。
代码演示及运行结果:
源码分析:
从源码中 , 我们可以看到 , 调用的是offer(e)方法 , 在下文中 , 我们也会讲解到的 。 如果offer方法返回true的话 , 就直接返回 , 否则就抛出:throw new IllegalStateException(\"Queue full\");异常的 。
删除元素:remove()
当队列不为空的时候 , 调用该方法 , 返回被移除的元素;当队列为空的时候在调用该方法 , 会抛出异常 。
来看看源码:
源码中调用了poll方法 , 当获取到的对象不为空的时候 , 返回获取到的对象;如果为空的话 , 就抛出:throw new NoSuchElementException();异常 。
判断当前队列的队首元素:element()
该方法是获取队首元素的 。 当队列不为空的时候 , 返回队列中当前队首元素;如果队列为空的时候 , 调用该方法会抛异常的 。
我们来看看源码:
获取队首元素代码演示及运行结果如下图:
第一组API三个方法我们都讲解完了 。 Add/remove/element方法 。 最大的特点就是 , 队列为空或者是队列满了 , 继续操作队列的话 , 就会抛出异常 。 这个凯哥根据就像我们人的一生中少年时期一样 , 初生牛犊不怕虎 , 遇到什么不服的或者是不顺心的就暴躁了 , 碰不得 , 一碰就爆炸 。 一言不合就开干!
第二组:带有返回值的 , 不会抛出异常:为人处事会圆滑了第二组api的不像第一组那么暴躁如雷了 , 不想就抛异常 。 第二组 , 不会抛出异常了 。 我们接着来看看:
添加元素:offer(e)
需要主要:这里的offer方法只有一个参数 , 这个和我们后面讲解的一组的区别
当队列未满的时候 , 向队列中添加元素 , 返回true;当队列已经满了 , 继续向队列中添加元素的话 , 不会抛出异常 , 会返回false.
源码分析:
从源码中 , 我们可以看到 , offer(e)的方法中 , 有个count计数器 , 每次添加元素后 , 都会count++ 。 当count的值等于队列的长度的时候 , 返回false.而不是抛出异常 。 我们来用代码演示.
Offer(e)添加元素代码演示及运行结果:
删除元素:poll()
注意:参数为空哦!
当队列不为空的时候 , 返回被移除的元素 , 当队列为空的时候 , 返回null.而不是抛出异常 。
源码分析:
从源码中 , 我们将看到count这个计数器又起作用了 。 先判断count是否==0
如果不等于0 , 调用dequeue方法 , count-- , 然后将获取到的元素返回;
如果count == 0的话 , 直接返回null.
源码如下图:
代码演示及运行结果:
获取队首元素:peek()
当队列不为空的时候 , 返回当前队列的队首元素;如果队列为空的时候 , 返回null , 而不是抛出异常 。
源码分析:
在源码中 , 我们可以看到调用了itemAt(takeIndex)方法 。 但是在这个方法后面有这么已经注释:null when queue is empty 。 源码如下图:
代码演示:
从运行的结果 , 我们可以看到 , 当移除最后一个元素:kaigejava的时候 , 获取到的队首元素已经为null了 。 因为队列为空了 , 所以 , 就算后面还有循环 , 获取到的队首元素依然是null , 而不是抛出异常 。 运行结果如下图:
从第二组API中 , 我们可以看到 , 不像第一组那么极端了 。 当队列为空或者是队列满的时候 , 返回数据告知对象 。 这个就像我们人生由少年时代 , 进入了青年时代 , 经过学校的洗礼之后 , 为人处事学会了圆滑了 。
推荐阅读
- #Java#java线程到底有多少种状态?
- 数码潮范一起跳舞吧!飞利浦派对音箱NX100、NX200全新上市
- #微信#Java全国统一卷之SpringMVC
- 科技小辛辛@三挡DPI鼠标从39.9降至11.9,性价比极高!,飞利浦也有真香时刻
- 『手机之友TB』巧夺天工,飞利浦E258C参数大全
- #Java#Java中的自动装箱和拆箱
- 『科技圈里那些事Y』飞利浦跳水后也有极致性价比,这款无线鼠标目前值了,从79降至19
- 小米内测师▲戴森:幸好不是对标我,小米新品搞事情!899元硬刚1999元飞利浦
- 『IT之家』sRGB,1399元,飞利浦推出新款23.8英寸显示器:2Ku002F116%
- 「搞机科技会所」五一外出游玩必备好物,飞利浦摩天轮延长线