Removes a single instance of the specified element from this queue, if it is present.
Retrieves and removes the head of this queue. This method differs from poll()
only in that it throws an exception if this queue is empty.

package com.logicbig.example.arrayblockingqueue;
import java.util.Arrays;
import java.util.concurrent.ArrayBlockingQueue;
public class RemoveExample {
public static void main(String... args) {
ArrayBlockingQueue<Integer> q = new ArrayBlockingQueue<>(3, true, Arrays.asList(1, 3, 5));
System.out.println("queue before: " + q);
boolean b = q.remove(3);
System.out.println(b);
b = q.remove(7);
System.out.println(b);
System.out.println("queue after: " + q);
}
}
Output
queue before: [1, 3, 5]
true
false
queue after: [1, 5]
Throws exception if queue is empty:

package com.logicbig.example.arrayblockingqueue;
import java.util.Arrays;
import java.util.concurrent.ArrayBlockingQueue;
public class RemoveExample3 {
public static void main(String... args) {
ArrayBlockingQueue<Integer> q = new ArrayBlockingQueue<>(2);
Integer i = q.remove();
System.out.println(i);
}
}
Output
Caused by: java.util.NoSuchElementException
at java.base/java.util.AbstractQueue.remove(AbstractQueue.java:117)
at com.logicbig.example.arrayblockingqueue.RemoveExample3.main(RemoveExample3.java:16)
... 6 more