队列源码解析

提到队列,我们最多提到的就是队列的特点:先入先出(FIFO)。意指先进入队列的元素将会优先从队列中出栈。

队列的源码相对比较简单。主要代码如下:

public interface Queue<E> extends Collection<E> {
   //将元素添加到这个队列中,但是如果没有可用空间,则抛出异常IllegalStateException
    boolean add(E e);
    //入队
    boolean offer(E e);
    //移除头部或者如果队列为空。则返回null
     E remove();
     //出队
     E poll();
    //如果为空,只抛出异常,检索头部
    E element();
    //检索头部但不删除
    E peek();
}

第一个要关注的点就是第一行,数据结构队列继承了Collection接口。

add()方法就是简单的入队,offer()方法和add()方法相比,两者都是往队列尾部插入元素,不同的时候,当超出队列界限的时候,add()方法是抛出异常让你处理,而offer()方法是直接返回false。remove()方法是取出并移除队列的头部,如果队列为空则会抛出异常。poll()方法取出并移除队列头部元素,如果队列为空则会返回null。element()方法取出但并不移除队列的头部元素,如果队列为空则会抛出异常。peek()方法取出但并不移除队列的头部元素,如果队列为空则会返回null。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值