9.Java的LinkedList/Deque相关方法
Java的LinkedList/Deque中add/offer/push,remove/pop/poll的区别
它们来自不同的接口
add/remove
源自集合,所以添加到队尾,从队头删除;offer/poll
源自队列(先进先出 => 尾进头出),所以添加到队尾,从队头删除;push/pop
源自栈(先进后出 => 头进头出),所以添加到队头,从队头删除;offerFirst/offerLast/pollFirst/pollLast
源自双端队列(两端都可以进也都可以出),根据字面意思,offerFirst
添加到队头,offerLast
添加到队尾,pollFirst
从队头删除,pollLast
从队尾删除。
总结:add/offer/offerLast
添加队尾,三个方法等价;push/offerFirst
添加队头,两个方法等价。remove/pop/poll/pollFirst
删除队头,四个方法等价;pollLast
删除队尾。
LinkedList
当做集合list
,那么应该用add/remove
,如果想用作队列,则使用offer/poll
,如果用作栈,则使用push/pop
,如果用作双端队列,则使用offerFirst/offerLast/pollFirst/pollLast
。9.Java的LinkedList/Deque相关方法的更多相关文章
- Java集合---LinkedList源码解析
一.源码解析1. LinkedList类定义2.LinkedList数据结构原理3.私有属性4.构造方法5.元素添加add()及原理6.删除数据remove()7.数据获取get()8.数据复制clo ...
- JDK1.8源码(六)——java.util.LinkedList 类
上一篇博客我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,本篇博客我们介绍 List 集合的另一种典型实现 LinkedList,这是一个有链表 ...
- java之LinkedList详细介绍
1 LinkedList介绍 LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表.它也可以被当作堆栈.队列或双端队列进行操作.Linke ...
- 内功心法 -- java.util.LinkedList<E> (3)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (4)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (5)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (6)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (7)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (8)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
- 内功心法 -- java.util.LinkedList<E> (1)
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...
随机推荐
- PyMySQL创建
title: PyMySQL创建 author: 杨晓东 permalink: PyMySQL创建 date: 2021-10-02 11:27:04 categories: - 投篮 tags: - ...
- 'umi' 不是内部或外部命令,也不是可运行的程序 或批处理文件或umi: command not found
问题 'umi' 不是内部或外部命令,也不是可运行的程序 或批处理文件或umi: command not found 解决方法 参考链接:https://blog.csdn.net/weixin_40 ...
- Appium + Python xpath定位
本文转自:https://www.cnblogs.com/yoyoketang/p/9174749.html 基本属性定位 以淘宝app为例,定位左上角扫一扫按钮 1.可以通过text文本定位到 // ...
- ssh scp 相关
1. 设置ssh 的免密登录 1> 将 ~/.ssh/id_rsa.pub文件中的内容拷贝到 远程host的 ~/.ssh/authorized_keys文件中 2> ssh-copy-i ...
- vue项目中axios跨域设置
最近项目中遇到一个问题,测试环境和线上环境需要调同一个接口(接口地址是线上的),本地开发的时候遇到了跨域的问题,刚开始用了fetch解决的,代码如下 方法一 step1:安装包node-fetch,然 ...
- double 四舍五入和去尾
// import java.math.RoundingMode;// import java.text.NumberFormat; double d= 1.345233; //四舍五入 保留两位小数 ...
- unity game Developemnt in 24 hours 第1章 untiy
屏幕有3个主要窗口 , Hierarchy.Project.Insepector ,个人理解Project是类定义,Hierarchy是创建类.实例化类,而Insepector是对类的属性进行管理
- 通过flask完成web实时播放视频
def gen(): r = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DB, password=PASS_WORD) ...
- Erlang Mnesia数据库迁移方法
本文参考https://blog.csdn.net/yangzm/article/details/51686249 需求 因为一些原因,需要把一个Mnesia节点的数据库搬迁到另一个节点,然后弃用原来 ...
- IDEA 2018.3.*本地启动tomcat项目无法设置Application context localhost 404
记录一个开发中遇到的坑,网上找了好久才找到一个能解决的办法,特此转载一下. 旧版的idea启动web项目,在tomcat配置环节,有设置Application content的功能.我们可以设置成&q ...