Java中的ArrayBlockingQueue remove()方法

Java中的ArrayBlockingQueue remove()方法

ArrayBlockingQueue 是一个有界的阻塞队列,它将元素存储在内部由数组支持的队列中。

  • ArrayBlockingQueue 类是Java Collections框架的成员。
  • 有界是指它将具有固定大小,您不能存储超过队列容量的元素。
  • 该队列遵循先进先出(FIFO)规则,用于从队列中存储和删除元素。
  • 如果尝试将元素放入满队列或从空队列中取出元素,则队列将阻止您。

remove(Object o) 方法 从此队列中删除指定元素的单个实例 ,如果存在该元素。

我们可以说,如果该队列包含一个或多个这样的元素,则该方法将删除一个元素e,使得o.equals(e)。如果要删除的指定元素在此队列中,则Remove()方法返回true。

语法:

public boolean remove(Object o)

参数:

o – 要从此队列中删除的元素(如果存在)。

返回值:

如果要删除的指定元素在此队列中,则返回true。

下面的程序说明了ArrayBlockingQueue的remove(Object o)方法。

例1

//Java程序演示ArrayBlockingQueue的remove(Object o)方法。
import java.util.concurrent.ArrayBlockingQueue;
  
public class GFG {
  
    public static void main(String[] args) throws InterruptedException
    {
        // 定义ArrayBlockingQueue的容量
        int capacity = 5;
  
        // 创建ArrayBlockingQueue对象
        ArrayBlockingQueue<Integer> queue
            = new ArrayBlockingQueue<Integer>(capacity);
  
        // 使用put方法将元素添加到ArrayBlockingQueue中
        queue.put(223);
        queue.put(546);
        queue.put(986);
  
        // 打印队列
        System.out.println("队列包含 " + queue);
  
        // 删除223
        boolean response = queue.remove(223);
        // 打印队列
        System.out.println("移除223:" + response);
  
        // 打印队列
        System.out.println("队列包含 " + queue);
  
        // 删除546
        response = queue.remove(546);
        // 打印队列
        System.out.println("移除546:" + response);
  
        // 打印队列
        System.out.println("队列包含 " + queue);
  
        // 删除734,该元素不存在
        response = queue.remove(734);
        // 打印队列
        System.out.println("移除734:" + response);
  
        // 打印队列
        System.out.println("队列包含 " + queue);
    }
}

输出:

队列包含 [223,546,986]
移除223:true
队列包含 [546,986]
移除546:true
队列包含 [986]
移除734:false
队列包含 [986]

例2

// Java程序演示remove(Object o)
//方法的ArrayBlockingQueue。
  
import java.util.concurrent.ArrayBlockingQueue;
  
public class GFG {
  
    public static void main(String[] args) throws InterruptedException
    {
        //定义ArrayBlockingQueue的容量
        int容量=5;
  
        //创建ArrayBlockingQueue的对象
        ArrayBlockingQueue队列
            = new ArrayBlockingQueue(capacity);
  
        //使用put方法向ArrayBlockingQueue添加元素
        队列.put("星球大战");
        队列.put("超人");
        队列.put("闪电侠");
        队列.put("蝙蝠侠");
        队列.put("复仇者联盟");
  
        //打印队列
        System.out.println("queue包含" +队列);
  
        //删除星球大战
        boolean回应=队列.remove("星球大战");
        //打印队列
        System.out.println("Removal of StarWars:"+回应);
  
        //打印队列
        System.out.println("queue包含" + 队列);
  
        //删除绿巨人
        回应=队列.remove("绿巨人");
        //打印队列
        System.out.println("Removal of Hulk:"+回应);
  
        //打印队列
        System.out.println("queue包含" +队列);
    }
}

输出:

queue包含[星球大战,超人,闪电侠,蝙蝠侠,复仇者联盟]
Removal of StarWars:true
queue包含[超人,闪电侠,蝙蝠侠,复仇者联盟]
Removal of Hulk:false
queue包含[超人,闪电侠,蝙蝠侠,复仇者联盟]

参考资料:

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ArrayBlockingQueue.html#remove(java.lang.Object)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程