java容器 接口Deque源码分析

目录

简介

双端队列的方法

插入 addFirst,addLast,offerFirst,offerLast

删除 removeFirst,removeLast,pollFirst,pollLast

返回 getFirst,getLast,peekFirst,peekLast

删除内部元素 removeFirstOccurrence,removeLastOccurrence

队列的方法

插入 add,offer

删除 remove,poll

返回 element,peek

栈的方法 push,pop

集合的方法 contains,remove,size

迭代器 iterator,descendingIterator


简介

/**
 * 一个线性的集合,支持在两端插入和删除元素。
 * deque是double ended queue 双端队列的简称,通常读作deck。
 * 绝大多数Deque实现对可以包含的元素的数量没有固定的限制,
 * 但这个接口支持容量限制的双端队列,也支持没有固定大小的。
 *
 * <p>这个接口定义了访问双端队列的两端末尾的元素。
 * 提供了插入,删除,返回这个元素的方法。
 * 它们的每个方法存在两个形式:如果操作失败,抛出异常。另个一个返回特殊值(null或者false,取决于操作)。
 * 后一种形式的插入操作专门用于容量受限的Queue实现。
 * 在大多数实现,insert操作不会失败。
 *
 * <p>上面的12个方法,在下表总结:
 *
 * <table BORDER CELLPADDING=3 CELLSPACING=1>
 * <caption>Deque 方法总结</caption>
 *  <tr>
 *    <td></td>
 *    <td ALIGN=CENTER COLSPAN = 2> <b>第一个元素(头)</b></td>
 *    <td ALIGN=CENTER COLSPAN = 2> <b>最后一个元素(尾)</b></td>
 *  </tr>
 *  <tr>
 *    <td></td>
 *    <td ALIGN=CENTER><em>抛出异常</em></td>
 *    <td ALIGN=CENTER><em>特殊值</em></td>
 *    <td ALIGN=CENTER><em>抛出异常</em></td>
 *    <td ALIGN=CENTER><em>特殊值</em></td>
 *  </tr>
 *  <tr>
 *    <td><b>插入</b></td>
 *    <td>{@link Deque#addFirst addFirst(e)}</td>
 *    <td>{@link Deque#offerFirst offerFirst(e)}</td>
 *    <td>{@link Deque#addLast addLast(e)}</td>
 *    <td>{@link Deque#offerLast offerLast(e)}</td>
 *  </tr>
 *  <tr>
 *    <td><b>删除</b></td>
 *    <td>{@link Deque#removeFirst removeFirst()}</td>
 *    <td>{@link Deque#pollFirst pollFirst()}</td>
 *    <td>{@link Deque#removeLast removeLast()}</td>
 *    <td>{@link Deque#pollLast pollLast()}</td>
 *  </tr>
 *  <tr>
 *    <td><b>返回</b></td>
 *    <td>{@link Deque#getFirst getFirst()}</td>
 *    <td>{@link Deque#peekFirst peekFirst()}</td>
 *    <td>{@link Deque#getLast getLast()}</td>
 *    <td&g
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值