📜  Java中的 ArrayBlockingQueue remove() 方法

📅  最后修改于: 2022-05-13 01:55:20.846000             🧑  作者: Mango

Java中的 ArrayBlockingQueue remove() 方法

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

  • ArrayBlockingQueue类是Java集合框架的成员。
  • 有界意味着它将具有固定大小,您不能存储数量超过队列容量的元素。
  • 队列还遵循 FIFO(先进先出)规则来存储和删除队列中的元素。
  • 如果你试图将一个元素放入一个满队列或从一个空队列中取出一个元素,那么队列会阻止你。

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

句法:

public boolean remove(Object o)

范围:
o – 要从此队列中删除的元素(如果存在)。
回报:
如果此队列包含我们要删除的指定元素,则返回 true。

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

示例 1

// Java Program Demonstrate remove(Object o)
// method of ArrayBlockingQueue.
import java.util.concurrent.ArrayBlockingQueue;
  
public class GFG {
  
    public static void main(String[] args) throws InterruptedException
    {
        // define capacity of ArrayBlockingQueue
        int capacity = 5;
  
        // create object of ArrayBlockingQueue
        ArrayBlockingQueue queue
            = new ArrayBlockingQueue(capacity);
  
        // Add elements to ArrayBlockingQueue using put method
        queue.put(223);
        queue.put(546);
        queue.put(986);
  
        // print Queue
        System.out.println("queue contains " + queue);
  
        // remove 223
        boolean response = queue.remove(223);
        // print Queue
        System.out.println("Removal of 223 :" + response);
  
        // print Queue
        System.out.println("queue contains " + queue);
  
        // remove 546
        response = queue.remove(546);
        // print Queue
        System.out.println("Removal of 546 :" + response);
  
        // print Queue
        System.out.println("queue contains " + queue);
  
        // remove 734 which is not present
        response = queue.remove(734);
        // print Queue
        System.out.println("Removal of 734 :" + response);
  
        // print Queue
        System.out.println("queue contains " + queue);
    }
}
Output :
queue contains [223, 546, 986]
Removal of 223 :true
queue contains [546, 986]
Removal of 546 :true
queue contains [986]
Removal of 734 :false
queue contains [986]

示例 2

// Java Program Demonstrate remove(Object o)
// method of ArrayBlockingQueue.
  
import java.util.concurrent.ArrayBlockingQueue;
  
public class GFG {
  
    public static void main(String[] args) throws InterruptedException
    {
        // define capacity of ArrayBlockingQueue
        int capacity = 5;
  
        // create object of ArrayBlockingQueue
        ArrayBlockingQueue queue
            = new ArrayBlockingQueue(capacity);
  
        // Add elements to ArrayBlockingQueue using put method
        queue.put("StarWars");
        queue.put("SuperMan");
        queue.put("Flash");
        queue.put("BatMan");
        queue.put("Avengers");
  
        // print Queue
        System.out.println("queue contains " + queue);
  
        // remove StarWars
        boolean response = queue.remove("StarWars");
        // print Queue
        System.out.println("Removal of StarWars :" + response);
  
        // print Queue
        System.out.println("queue contains " + queue);
  
        // remove Hulk
        response = queue.remove("Hulk");
        // print Queue
        System.out.println("Removal of Hulk :" + response);
  
        // print Queue
        System.out.println("queue contains " + queue);
    }
}
Output :
queue contains [StarWars, SuperMan, Flash, BatMan, Avengers]
Removal of StarWars :true
queue contains [SuperMan, Flash, BatMan, Avengers]
Removal of Hulk :false
queue contains [SuperMan, Flash, BatMan, Avengers]

参考:
https://docs.oracle.com/javase/7/docs/api/java Java Java)