Java中ArrayBlockingQueue的spliterator()方法
ArrayBlockingQueue 类中的 spliterator() 方法返回ArrayBlockingQueue元素的Spliterator。返回的迭代器是弱一致的。Spliterator可以与Java 8中的Streams一起使用。Spliterator可以单独和批量遍历元素。
语法:
public Spliterator spliterator()
返回值: 该方法返回ArrayBlockingQueue中元素的Spliterator。
以下程序示例ArrayBlockingQueue类的spliterator()方法:
程序1:
// Java程序演示ArrayBlockingQueue的spliterator()方法
import java.util.concurrent.ArrayBlockingQueue;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
//定义ArrayBlockingQueue的容量
int capacityOfQueue = 7;
//创建ArrayBlockingQueue对象
ArrayBlockingQueue<Integer> Queue
= new ArrayBlockingQueue<Integer>(capacityOfQueue);
//向ArrayBlockingQueue中添加元素
Queue.add(22);
Queue.add(34);
Queue.add(45);
Queue.add(67);
//使用spliterator()方法创建Queue的Spliterator
Spliterator<Integer> numbers = Queue.spliterator();
//获取Spliterator的getExactSize
System.out.println("Spliterator的大小:"
+ numbers.estimateSize());
System.out.println("数字列表:");
// Spliterator的forEachRemaining方法
numbers.forEachRemaining((n) -> System.out.println(n));
}
}
输出:
Spliterator的大小:4
数字列表:
22
34
45
67
程序2:
// Java程序演示ArrayBlockingQueue的spliterator()方法
import java.util.concurrent.ArrayBlockingQueue;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
//定义ArrayBlockingQueue的容量
int capacityOfQueue = 7;
//创建ArrayBlockingQueue对象
ArrayBlockingQueue<String> QueueOfStrings
= new ArrayBlockingQueue<String>(capacityOfQueue);
//向ArrayBlockingQueue中添加元素
QueueOfStrings.add("印度");
QueueOfStrings.add("巴基斯坦");
QueueOfStrings.add("英国");
QueueOfStrings.add("中国");
QueueOfStrings.add("阿联酋");
QueueOfStrings.add("西班牙");
//使用spliterator()方法创建QueueOfStrings的Spliterator
Spliterator<String>
listOfStrings = QueueOfStrings.spliterator();
//获取Spliterator的getExactSize
System.out.println("Spliterator的大小:"
+ listOfStrings.estimateSize());
System.out.println("国家名称列表:");
// Spliterator的forEachRemaining方法
listOfStrings.forEachRemaining((str) -> print(str));
}
public static void print(String str)
{
System.out.println("值= " + str);
}
}
输出:
Spliterator的大小:6
国家名称列表:
值= 印度
值= 巴基斯坦
值= 英国
值= 中国
值= 阿联酋
值= 西班牙
参考: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ArrayBlockingQueue.html#spliterator–
极客教程