Java中PriorityBlockingQueue spliterator()方法
spliterator() 方法返回与PriorityBlockingQueue相同元素的 Spliterator 。返回的迭代器是弱一致的,并且可以在Java 8中与Streams一起使用。它也可以单独遍历元素以及批量遍历。Spliterator是遍历元素的更好方法,因为它在元素上提供了更多控制。
语法:
public Spliterator spliterator()
返回值:
此方法返回PriorityBlockingQueue中的元素的Spliterator。
下面的程序说明了PriorityBlockingQueue的spliterator()方法:
示例1: 在包含数字列表的PriorityBlockingQueue上演示spliterator()方法的程序。
// Java程序演示PriorityBlockingQueue的spliterator()方法
import java.util.concurrent.PriorityBlockingQueue;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 定义PriorityBlockingQueue的容量
int capacityOfQueue = 5;
// 创建PriorityBlockingQueue对象
PriorityBlockingQueue<Integer> PrioQueue
= new PriorityBlockingQueue<Integer>(capacityOfQueue);
// 向PriorityBlockingQueue添加数字
PrioQueue.put(7855642);
PrioQueue.put(35658786);
PrioQueue.put(5278367);
PrioQueue.put(74381793);
PrioQueue.put(76487590);
PrioQueue.put(87625142);
// 使用spliterator()方法创建PrioQueue的Spliterator
Spliterator<Integer> numbers = PrioQueue.spliterator();
// 从Spliterator中打印结果
System.out.println("数字列表:");
// Spliterator的forEachRemaining方法
numbers.forEachRemaining((n) -> System.out.println(n));
}
}
数字列表:
5278367
35658786
7855642
74381793
76487590
87625142
示例2: 在包含名称列表的PriorityBlockingQueue上演示spliterator()方法的程序。
// Java程序演示PriorityBlockingQueue的spliterator()方法
import java.util.concurrent.PriorityBlockingQueue;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 定义PriorityBlockingQueue的容量
int capacityOfQueue = 5;
// 创建包含学生名称的PriorityBlockingQueue对象
PriorityBlockingQueue<String> names
= new PriorityBlockingQueue<String>(capacityOfQueue);
// 添加女生学院的学生姓名
names.add("Joyita");
names.add("Priyanka");
names.add("Joydeep");
// 使用spliterator()方法创建名称列表的Spliterator
Spliterator<String> list = names.spliterator();
// 从Spliterator中打印结果
System.out.println("名称列表:");
// Spliterator的forEachRemaining方法
list.forEachRemaining((n) -> System.out.println(n));
}
}
名称列表:
Joydeep
Priyanka
Joyita
参考资料: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html#spliterator
极客教程