Java中的ArrayBlockingQueue spliterator()方法
ArrayBlockingQueue 的 spliterator() 方法在ArrayBlockingQueue的元素上返回一个Spliterator。返回的迭代器是弱一致性的。Spliterator可以在Java 8中与Streams一起使用。Spliterator也可以单独或批量地遍历元素。
语法
public Spliterator spliterator()
返回值: 该方法返回ArrayBlockingQueue中元素的Spliterator。
下面的程序说明了ArrayBlockingQueue类的splitator()方法:
程序1 :
// Java Program Demonstrate spliterator()
// method of ArrayBlockingQueue
import java.util.concurrent.ArrayBlockingQueue;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// define capacity of ArrayBlockingQueue
int capacityOfQueue = 7;
// create object of ArrayBlockingQueue
ArrayBlockingQueue<Integer> Queue
= new ArrayBlockingQueue<Integer>(capacityOfQueue);
// Add element to ArrayBlockingQueue
Queue.add(22);
Queue.add(34);
Queue.add(45);
Queue.add(67);
// create Spliterator of Queue
// using spliterator() method
Spliterator<Integer> numbers = Queue.spliterator();
// getExactSize of Spliterator
System.out.println("Size of Spliterator : "
+ numbers.estimateSize());
System.out.println("list of Numbers:");
// forEachRemaining method of Spliterator
numbers.forEachRemaining((n) -> System.out.println(n));
}
}
输出
Size of Spliterator : 4
list of Numbers:
22
34
45
67
示例 2:
// Java Program Demonstrate spliterator()
// method of ArrayBlockingQueue
import java.util.concurrent.ArrayBlockingQueue;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// define capacity of ArrayBlockingQueue
int capacityOfQueue = 7;
// create object of ArrayBlockingQueue
ArrayBlockingQueue<String> QueueOfStrings
= new ArrayBlockingQueue<String>(capacityOfQueue);
// Add element to ArrayBlockingQueue
QueueOfStrings.add("India");
QueueOfStrings.add("Pakistan");
QueueOfStrings.add("England");
QueueOfStrings.add("China");
QueueOfStrings.add("UAE");
QueueOfStrings.add("Spain");
// create Spliterator of QueueOfStrings
// using spliterator() method
Spliterator<String>
listOfStrings = QueueOfStrings.spliterator();
// getExactSize of Spliterator
System.out.println("Size of Spliterator : "
+ listOfStrings.estimateSize());
System.out.println("list of Country names:");
// forEachRemaining method of Spliterator
listOfStrings.forEachRemaining((str) -> print(str));
}
public static void print(String str)
{
System.out.println("Value = " + str);
}
}
输出
Size of Spliterator : 6
list of Country names:
Value = India
Value = Pakistan
Value = England
Value = China
Value = UAE
Value = Spain
参考资料: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ArrayBlockingQueue.html#spliterator-
极客教程