Java.util.PriorityQueue 类

java.util.PriorityQueue.toArray() 方法返回一个包含此队列中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。如果给定队列适合指定数组,则将其返回其中。否则,将使用指定数组的运行时类型和给定队列的大小分配一个新数组。

如果队列适合指定数组且有空闲空间,则数组中紧随其后的元素集合的末尾设置为 null。

语法

public <T> T[] toArray(T[] a)

这里,T 是容器维护的元素类型。

参数

a 指定要存储队列元素的数组(如果足够大);否则,为此目的分配一个相同运行时类型的新数组。

返回值

返回包含所有元素的数组

异常

  • 如果 a 的运行时类型不是队列中每个元素的运行时类型的超类型,则抛出 ArrayStoreException队列。
  • 如果给定数组为 null,则抛出 NullPointerException

示例:

在示例中下面,java.util.PriorityQueue.toArray() 方法返回一个包含给定队列的所有元素的数组。

import java.util.*;

public class MyClass {
  public static void main(String[] args) {
    //创建优先级队列
    PriorityQueue<Integer> PQueue = new PriorityQueue<Integer>();

    //填充优先级队列
    PQueue.add(10);
    PQueue.add(20);
    PQueue.add(30);
    PQueue.add(40);

    //创建一个空数组
    Integer[] Arr = new Integer[5];

    //将优先级队列转换为数组
    PQueue.toArray(Arr);

    //打印数组
    System.out.print("The Arr contains: ");
    for(int i = 0; i < Arr.length; i++)
      System.out.print(Arr[i]+ " ");
  }
}

上述代码的输出将是:

The Arr contains: 10 20 30 40 null