📜  Java中的 BlockingDeque peek() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:31:50.448000             🧑  作者: Mango

Java中的 BlockingDeque peek() 方法及示例

概述

Java中的 BlockingDeque 接口继承自 Deque 接口,是一个支持阻塞(Blocking)的队列(Queue),可以在两端插入和移除元素。BlockingDeque 可以被多个线程同时访问,其中的方法都是线程安全的。

BlockingDeque 接口中的 peek() 方法用于返回 BlockingDeque 的头部元素,而不会将其从队列中移除。

方法定义

BlockingDeque 接口中 peek() 方法的定义如下:

E peek();

返回 BlockingDeque 的头部元素,如果 BlockingDeque 为空,则返回 null。

示例

下面是一个示例程序,演示了如何使用 BlockingDeque peek() 方法:

import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;

public class TestBlockingDeque {
    public static void main(String[] args) throws InterruptedException {
        BlockingDeque<String> deque = new LinkedBlockingDeque<>();

        deque.add("Java");
        deque.add("Python");
        deque.add("C++");

        String head = deque.peek();
        System.out.println("head element: " + head); // 输出 "head element: Java"

        deque.removeFirst();

        head = deque.peek();
        System.out.println("head element: " + head); // 输出 "head element: Python"
    }
}

以上程序会输出以下内容:

head element: Java
head element: Python

在该示例中,我们先创建了一个 LinkedBlockingDeque 对象并向其添加三个字符串元素。然后获取 BlockingDeque 的头部元素,输出 "head element: Java"。

接着,我们从 BlockingDeque 的头部移除第一个元素,并再次获取头部元素,输出 "head element: Python"。

总结

BlockingDeque 接口中的 peek() 方法用于返回 BlockingDeque 的头部元素,但并不会将其从队列中移除。在多线程环境下,使用 BlockingDeque 可以更加方便地实现并发编程。