Java ConcurrentLinkedQueue spliterator()方法
ConcurrentLinkedQueue 的 spliterator() 方法用于获得一个与ConcurrentLinkedQueue相同元素的Spliterator。创建的Spliterator是弱一致性的。它可以在Java 8中与Streams一起使用。同时它也可以单独或批量地遍历元素。Spliterator是遍历元素的更好方法,因为它对元素提供了更多的控制。
语法
public Spliterator spliterator()
返回: 该方法在ConcurrentLinkedQueue的元素上返回一个 Spliterator 。
下面的程序说明了ConcurrentLinkedQueue的splitator()方法。
例1 :
// Java Program Demonstrate spliterator()
// method of ConcurrentLinkedQueue
import java.util.concurrent.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// create an ConcurrentLinkedQueue
ConcurrentLinkedQueue<Integer>
queue = new ConcurrentLinkedQueue<Integer>();
// Add Numbers to queue
queue.add(4353);
queue.add(377139);
queue.add(624378);
queue.add(654793);
queue.add(764764);
queue.add(838494);
queue.add(632845);
// create Spliterator of ConcurrentLinkedQueue
// using spliterator() method
Spliterator<Integer> spt = queue.spliterator();
// print result from Spliterator
System.out.println("list of Numbers:");
// forEachRemaining method of Spliterator
spt.forEachRemaining((n) -> System.out.print(n + ", "));
}
}
输出。
list of Numbers:
4353, 377139, 624378, 654793, 764764, 838494, 632845,
例2 :
// Java Program Demonstrate spliterator()
// method of ConcurrentLinkedQueue
import java.util.concurrent.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// create an ConcurrentLinkedQueue
ConcurrentLinkedQueue<String>
queue = new ConcurrentLinkedQueue<String>();
// Add String to queue
queue.add("Aman");
queue.add("Amar");
queue.add("Sanjeet");
queue.add("Rabi");
queue.add("Debasis");
queue.add("Raunak");
queue.add("Mahesh");
// create Spliterator of ConcurrentLinkedQueue
// using spliterator() method
Spliterator<String> spt = queue.spliterator();
// print result from Spliterator
System.out.println("list of Strings:");
// forEachRemaining method of Spliterator
spt.forEachRemaining((n) -> System.out.print(n + ", "));
}
}
输出。
list of Strings:
Aman, Amar, Sanjeet, Rabi, Debasis, Raunak, Mahesh,
参考资料: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html#spliterator-