Java中的优先队列spliterator()方法

Java中的优先队列spliterator()方法

Java中优先队列(PriorityQueue)的 spliterator() 方法返回与优先队列中相同的元素的 Spliterator 。返回的Spliterator是一个 惰性绑定和快速失败的 Spliterator。惰性绑定的Spliterator在首次遍历、首次分割或首次查询预估大小时,会绑定到元素的源(优先队列)上,而不是在Spliterator创建时就绑定到元素上。可以在Java 8中与Streams一起使用,也可以逐个或批量遍历元素。Spliterator更好的遍历元素的方式,因为它对元素提供了更多的控制。

语法:

public Spliterator<E> spliterator()

返回值: 返回一个Spliterator,它可以遍历优先队列中的元素。

下面的程序演示了优先队列的spliterator()方法:

示例1: 演示优先队列上的spliterator()方法。

// Java程序演示PriorityQueue
//的方法
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        //创建PriorityQueue
        PriorityQueue<String> queue = new PriorityQueue<String>();
  
        //向队列中添加String
        queue.add("Kolkata");
        queue.add("Patna");
        queue.add("Delhi");
        queue.add("Jammu");
  
        //使用spliterator()方法
        Spliterator<String> spt = queue.spliterator();
  
        //从Spliterator中打印结果
        System.out.println("字符串列表:");
  
        //Spliterator的forEachRemaining方法
        spt.forEachRemaining((n) -> System.out.println(n));
    }
}
字符串列表:
Delhi
Jammu
Kolkata
Patna

示例2: 演示包含学生名字集的优先队列的spliterator()方法。

// Java程序演示PriorityQueue
//的方法
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        //创建至将包含名称列表的PriorityQueue
        PriorityQueue<String> queue = new PriorityQueue<String>();
  
        //将String对象添加到队列中
        queue.add("Aman");
        queue.add("Amar");
        queue.add("Sanjeet");
        queue.add("Josh");
        queue.add("Ron");
        queue.add("Kevin");
  
        //使用spliterator()方法
        Spliterator<String> spt = queue.spliterator();
  
        //从Spliterator中打印结果
        System.out.println("字符串对象列表:");
  
        //Spliterator的forEachRemaining方法
        spt.forEachRemaining((n) -> print(n));
    }
  
    public static void print(String s)
    {
        System.out.println("学生姓名:" + s);
    }
}
字符串对象列表:
学生姓名:Aman
学生姓名:Amar
学生姓名:Kevin
学生姓名:Josh
学生姓名:Ron
学生姓名:Sanjeet

参考文献: https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html#spliterator–

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程