java容器 接口Deque源码分析_mdeque.removefirst-程序员宅基地

技术标签: 源码分析  java容器  

目录

简介

双端队列的方法

插入 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
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xushiyu1996818/article/details/100161326

智能推荐

ESXi+docker_esxi docker-程序员宅基地

文章浏览阅读1.3w次。文章目录ESXi安装1、ESXi安装:2、重启后的配置:Docker环境部署1、创建虚拟机2、安装完之后,连上xshell,安装docker3、配置容器镜像4、从容器里拉取资源Docker部署Tomcat发布测试1、从容器里拉取资源tomcat2、新建数据库插入数据3、新建maven工程,webapp4、写ssm读数据库5、打war包5、上传到容器里ESXi安装1、ESXi安装:基本上都是下一步,就不做过多介绍了自定义硬件为iso镜像的路径,然后就完成了,重启2、重启后的配置:_esxi docker

ArcGIS RunTime概述_arcgis runtime qt 删除点-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏9次。ArcGIS Runtime 是新一代的轻量级的桌面开发产品,它提供多种API,可以使用WPF,Java等开发环境快速的构建地图应用,并将应用程序部署在Microsoft Windows和Linux等通用平台上。ArcGIS Runtime支持在线和离线的资源调用模式,具有开发简单,部署快速,体验良好等特点,成为云GIS环境下一个不错的选择,将在云GIS环境下扮演重要角色。 ArcGIS_arcgis runtime qt 删除点

FFmpeg指定x265编码器线程数-程序员宅基地

文章浏览阅读4.7k次。转载请注明出处:http://cyc.wiki/index.php/2018/07/17/ffmpeg指定x265编码器线程数/FFmpeg的-threads参数FFmpeg调用编码器时,一般使用-threads参数对编码器使用的线程数进行设置。 比如:ffmpeg -s 1920x1080 -framerate 25 -i input.yuv -c:v libx264 -t..._ffmpeg指定x265编码器线程数

ubuntu查看网速的工具_ubuntu查看网口百兆千兆-程序员宅基地

文章浏览阅读3.4k次。1.工具一:slurm安装sudo apt-get install slurm (Ubuntu系统)查看网速命令slurm -i eth0 (etho为网卡名)*******************************************************************************************************xiabi_ubuntu查看网口百兆千兆

基于OpenCPU方案的BC26 NB模组开发总结-程序员宅基地

文章浏览阅读3.8k次,点赞3次,收藏30次。本文详细分析并介绍了基于opencpu方案开打bc26 NB模组的流程,主要分为开发工具套件的使用以及代码分析。_bc26

关于2022年12代C/C++Linux服务器开发高级架构师课程体系分析_202212.c.c.c-程序员宅基地

文章浏览阅读447次。C/C++Linux服务器高级架构师的课程到2022目前已经迭代到12代了,像之前小编也总结过,但是课程每期都有做一定的更新,也是为了更好的完善课程跟上目前互联网大厂的岗位技术需求,之前课程里面也包含了一些小的分支,其中就有音视频开发、Linux内核开发、DPDK、golang等等一些程序员所需要的硬核技术。今天总结分析是2022年最新的课程体系。_202212.c.c.c

随便推点

Linux下的WEB服务器的搭建实战_linux搭建web服务器-程序员宅基地

文章浏览阅读1.9w次,点赞43次,收藏332次。Linux下的web服务器搭建详细过程每次搭建一个服务器之前,比如MySQL、DNS、WEB等首先要挂载磁盘目录文件挂载就是当要使用某个设备时(例如光盘或软盘),必须先将它们对应放到 Linux 系统中的某个目录上。其中对应的目录就叫作挂载点。只有经过操作之后,用户或程序才能访问到这些设备。这个操作过程就叫作文件系统的挂载。这里/dev/sr0是软盘,/mnt/cdrom是挂载点[root@wry139 ~]# mount /dev/sr0 /mnt/cdrom/mount: /dev/sr0 写保_linux搭建web服务器

SSM框架配置文件详解_ssm配置文件-程序员宅基地

文章浏览阅读4.8k次,点赞5次,收藏70次。SSM框架配置文件详解在SSM项目当中,所需要的配置文件总共有以下三个:①web.xml ②applicationContext.xml ③springmvc.xml以及两个properties文件jdbc.properties和log4j.properties1.web.xmlweb.xml是ssm项目当中最重要的一个配置文件,当服务启动时会首先加载web.xml这个文件,里面包括了对前端控制器、字符编码的配置案例:<?xml version="1.0" encoding_ssm配置文件

HTC Vive手柄圆盘控制角色移动_unity怎么用htc的手柄控制人物移动-程序员宅基地

文章浏览阅读6.9k次,点赞3次,收藏27次。这篇文章主要写的是通过手柄控制移动在场景中漫游。 在通过手柄控制移动时,我主要写了两个脚本一个ChildTransform.cs、Move.cs; 1、 ChildTransform这个脚本主要是为了获取头部Y轴方向的转动。以及头部在x、z轴方向的移动。将这个信息赋值给这个脚本绑定的对象身上。 2、 Move这个脚本主要是为了控制玩家的移动的,移动的方向是依据绑定ChildTransf_unity怎么用htc的手柄控制人物移动

centos7安装mysqlclient踩坑记录_mysqlclient.lib gcc-程序员宅基地

文章浏览阅读1.2k次。centos7安装mysqlclient踩坑记录服务器环境为centos7 使用Django3.1部署一个小项目 安装mysqlclient的过程中报错[root@guest download]# pip3.9 install mysqlclientCollecting mysqlclient Using cached mysqlclient-2.0.2.tar.gz (88 kB)Using legacy 'setup.py install' for mysqlclient, since pa_mysqlclient.lib gcc

spring-boot-admin-starter-client与spring-boot版本不匹配的坑_找不到 de.codecentric:spring-boot-admin-starter-serve-程序员宅基地

文章浏览阅读8.8k次。***************************APPLICATION FAILED TO START***************************Description:An attempt was made to call the method org.springframework.boot.web.client.RestTemplateBuilder.setConnectTimeout(Ljava/time/Duration;)Lorg/springframe..._找不到 de.codecentric:spring-boot-admin-starter-server:sources:2.5.2

遍历 ArrayList 时安全删除元素_java arraylist安全删除-程序员宅基地

文章浏览阅读258次。遍历 ArrayList 时安全删除元素_java arraylist安全删除

推荐文章

热门文章

相关标签