pollLast() 和poll啥区别

embedded/2024/10/20 20:49:03/

在 Java 中,pollLast()poll()Deque 接口的两个不同的方法,它们都用于从双端队列中移除并返回元素,但它们移除元素的位置不同:

  1. poll():

    • poll() 方法从双端队列的前端移除并返回第一个元素(即队列的头部)。如果队列是空的,那么方法将返回 null
  2. import java.util.LinkedList;
    import java.util.Deque;public class Main {public static void main(String[] args) {Deque<Integer> deque = new LinkedList<>();deque.addLast(1); // deque: [1]deque.addLast(2); // deque: [1, 2]deque.addLast(3); // deque: [1, 2, 3]// poll() 移除并返回队列前端的元素System.out.println(deque.poll()); // 输出 1, deque: [2, 3]// pollLast() 移除并返回队列后端的元素System.out.println(deque.pollLast()); // 输出 3, deque: [2]}
    }

    pollLast():

    • pollLast() 方法从双端队列的后端移除并返回最后一个元素(即队列的尾部)。如果队列是空的,那么方法同样将返回 null

这两种方法的主要区别在于它们操作队列的位置不同,poll() 操作队列的前端,而 pollLast() 操作队列的后端。

在滑动窗口最大值问题的解决方案中,pollLast() 被用来移除那些不再属于当前窗口的元素,或者那些在当前窗口内不是最大值的元素。这样做是为了确保队列中始终保持着当前窗口内的最大值,并且队列的前端始终指向最大值的索引。

以下是 LinkedList 实现 Deque 接口时这两个方法的一个简单示例:

在这个示例中,我们可以看到 poll()pollLast() 如何分别从双端队列的两端移除元素。


http://www.ppmy.cn/embedded/13974.html

相关文章

mathtype设置公式编号,公式居中以及编号靠右

在word中实现&#xff1a; 1. 首先点击栏&#xff0c;选择更多栏去看 看到栏的宽度&#xff0c;然后去设置样式 在开始-样式中设置,新建样式&#xff1a; 新建样式&#xff0c;然后设置格式-制表位&#xff0c;选择对齐方式&#xff0c;居中对齐设置刚才的一半&#xff0c;右…

5.机器学习-十大算法之一岭回归(Ridge)算法原理讲解

5.机器学习-十大算法之一岭回归&#xff08;Ridge&#xff09;算法原理讲解 一摘要二个人简介三前言四岭回归详细讲解五范数六原理七代码实现八第三方库实现 一摘要 岭回归是一种改良的最小二乘估计法&#xff0c;它通过引入L2范数惩罚项来处理多重共线性问题&#xff0c;并提高…

基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于HMM隐马尔可夫模型的金融数据预测算法.程序实现HMM模型的训练&#xff0c;使用训练后的模型进行预测。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运…

SecretFlow之SCQL部署(P2P方案)避雷纯享版

目录 前言一、搭建alice节点1.1、创建工作区1.2、准备状态数据、源数据1.3、配置 SCQLBroker1.4、配置 SCQLEngine1.5、创建 docker-compose 文件1.6、准备身份验证文件1.7、启动服务 二、搭建bob节点2.1、创建工作区2.2、准备状态数据、源数据2.3、配置 SCQLBroker2.4、配置 S…

2024/4/19学习笔记 vector模拟实现(2)

本次学习重点 1.迭代器区间构造和size_t n 构造 2.string扩容问题 3.erase的缺陷 1.迭代器区间构造和size_t n 构造 vector支持用一段迭代器区间构造&#xff0c;也可以支持任意类型的迭代器区间&#xff0c;所以要写成函数模板 template <class InputIterator> ve…

深度学习使用Accelerate库

Accelerate库 1.使用accelerate修改gpu代码实现多gpu推理过程 1.1关于单GPU训练的函数 一般单GPU训练整体流程大概为遍历一下batch&#xff0c;然后将img传给模型。之后&#xff0c;将groungtruth计算一下损失&#xff0c;进而&#xff0c;更新一下梯度&#xff0c;反向传播…

react项目,文件夹和组件命名,有什么好的规范

在React项目中&#xff0c;文件夹和组件的命名规范对于保持代码的可读性和可维护性至关重要。以下是一些建议的规范&#xff1a; 文件夹命名规范 1、使用小写字母&#xff1a; 所有文件夹名称都应使用小写字母&#xff0c;避免使用大写字母或特殊字符。 2、使用短而描述性的…

【Git学习笔记(二)】Git的基本操作

Git的基本操作 前言正文1、Git本地仓库创建和一些基本概念1.1 本地仓库创建1.2 本地项目创建1.3 仓库区和工作区1.4 暂存区1.5 提交1.6 查看状态1.7 查看日志 2、Git服务器和远程仓库创建2.1 搭建自己的Git服务器2.2 免费服务器2.2.1 github.com2.2.2 gitee.com2.2.3 创建远程仓…