在 Java 中使用示例中的 BlockingDeque offerFirst() 方法

在 Java 中使用示例中的 BlockingDeque offerFirst() 方法

BlockingDequeofferFirst(E e) 方法将参数中传递的元素插入到 Deque 容器的最前面。如果容器的容量已超过,则不像 add() 和 addFirst() 函数那样返回异常。

语法:

public boolean offerFirst(E e)

参数: 此方法接受一个必填参数 e, 它是要插入到 BlockingDeque 前面的元素。

返回: 如果插入了元素,则此方法返回 true, 否则返回 false。

注意: BlockingDeque 的 offerFirst() 方法是继承自 Java 中的 LinkedBlockingDeque 类。

下面的程序说明 LinkedBlockingDeque 的 offerFirst() 方法:

程序1:

// Java 程序演示 BlockingDeque 的 offerFirst() 方法
 
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.BlockingDeque;
import java.util.*;
 
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {
 
        // 创建 BlockingDeque 对象
        BlockingDeque<Integer> BD
            = new LinkedBlockingDeque<Integer>(4);
 
        // 在 BlockingDeque 的末尾添加数字
        BD.offerFirst(7855642);
        BD.offerFirst(35658786);
        BD.offerFirst(5278367);
        BD.offerFirst(74381793);
 
        // 无法插入
        BD.offerFirst(10);
 
        // 无法插入因此返回 false
        if (!BD.offerFirst(10))
            System.out.println("由于容量已满,无法插入元素 10");
 
        // 在移除之前打印队列
        System.out.println("Blocking Deque: " + BD);
    }
}

结果:

由于容量已满,无法插入元素 10
Blocking Deque: [74381793, 5278367, 35658786, 7855642]

程序2:

// Java 程序演示 BlockingDeque 的 offerFirst() 方法
 
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.BlockingDeque;
import java.util.*;
 
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {
 
        // 创建 BlockingDeque 对象
        BlockingDeque<String> BD
            = new LinkedBlockingDeque<String>(4);
 
        // 在 BlockingDeque 的末尾添加数字
        BD.offerFirst("abc");
        BD.offerFirst("gopu");
        BD.offerFirst("geeks");
        BD.offerFirst("richik");
 
        // 无法插入
        BD.offerFirst("hii");
 
        // 无法插入因此返回 false
        if (!BD.offerFirst("hii"))
            System.out.println("由于容量已满,无法插入元素 'hii'");
 
        // 在移除之前打印队列
        System.out.println("Blocking Deque: " + BD);
    }
}

结果:

由于容量已满,无法插入元素 'hii'
Blocking Deque: [richik, geeks, gopu, abc]

参考资料: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingDeque.html#offerFirst(E)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程