• pollLast() 和poll啥区别


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

    1. poll():

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

      pollLast():

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

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

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

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

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

  • 相关阅读:
    基于nodejs的在线跑腿系统-计算机毕业设计
    设计模式——模板方法模式
    SpringBoot介绍
    关于CSDN的那些你不知道的小知识
    Redis知识-实战篇(3)
    内核网络层的实现
    ios 使用runtime实现自动解归档
    确保第三方 API 安全的 5 个最佳实践
    pytorch Tensor
    无恒实验室联合GORM推出安全好用的ORM框架-GEN
  • 原文地址:https://blog.csdn.net/m0_64880608/article/details/138030210