Java中的 LinkedTransferQueue removeIf() 方法及示例
Java .util.concurrent.LinkedTransferQueue 的removeIf()方法是Java的一个内置函数,用于删除该队列中满足给定谓词过滤器的所有元素,该过滤器作为参数传递给该方法。
句法:
public boolean removeIf(Predicate filter)
参数:此方法采用参数过滤器,该过滤器表示一个谓词,该谓词定义要删除的元素的过滤条件。
返回值:此方法返回一个布尔值,描述是否已删除某些指定元素。如果谓词返回 true 并且元素已被删除,则返回 True。
异常:如果指定的过滤器为空,此方法将抛出NullPointerException 。
下面的程序说明了 LinkedTransferQueue 类的 removeIf()函数:
方案一:
// Java code to illustrate
// removeIf() method of LinkedTransferQueue
import java.util.concurrent.LinkedTransferQueue;
import java.util.*;
public class GFG {
public static void main(String[] args)
throws InterruptedException
{
// create object of LinkedTransferQueue
LinkedTransferQueue LTQ
= new LinkedTransferQueue();
// Add numbers to end of LinkedTransferQueue
// using add() method
LTQ.add(6);
LTQ.add(3);
LTQ.add(5);
LTQ.add(15);
LTQ.add(20);
// Print the LTQ
System.out.println("Linked Transfer Queue initially: "
+ LTQ);
// Remove all multiple of 3
// using removeIf() method
if (LTQ.removeIf(n -> (n % 3 == 0)))
System.out.println("Multiples of 3 removed.");
else
System.out.println("No element removed.");
// Print the LTQ
System.out.println("Current Linked Transfer Queue: "
+ LTQ);
}
}
输出:
Linked Transfer Queue initially: [6, 3, 5, 15, 20]
Multiples of 3 removed.
Current Linked Transfer Queue: [5, 20]
程序2:演示NullPointerException
// Java code to illustrate
// removeIf() method of LinkedTransferQueue
import java.util.concurrent.LinkedTransferQueue;
import java.util.*;
public class GFG {
public static void main(String[] args)
throws InterruptedException
{
// create object of LinkedTransferQueue
LinkedTransferQueue LTQ
= new LinkedTransferQueue();
// Add numbers to end of LinkedTransferQueue
// using add() method
LTQ.add(6);
LTQ.add(3);
LTQ.add(5);
LTQ.add(15);
LTQ.add(20);
// Print the LTQ
System.out.println("Linked Transfer Queue initially: "
+ LTQ);
try {
// Remove all multiple of 3
// using removeIf() method
System.out.println("Trying to remove null.");
LTQ.removeIf(null);
}
catch (Exception e) {
System.out.println(e);
}
}
}
输出:
Linked Transfer Queue initially: [6, 3, 5, 15, 20]
Trying to remove null.
java.lang.NullPointerException
参考: Java : Java ( Java )