Pet*_*rey 24
最快的是首先使用LinkedList,它可以用作List或Queue.
Queue q = new LinkedList();
List l = (List) q;
Run Code Online (Sandbox Code Playgroud)
否则你需要复印一份
List l = new ArrayList(q);
Run Code Online (Sandbox Code Playgroud)
Min*_*hĩa 12
PriorityQueue如果您要从a转换List,请记住它实际上是一个堆,因此顺序是使用该poll()方法确定的,在这种情况下,通过此处其他一些答案中讨论的构造函数方式执行此操作将不会保持队列的自然顺序。
考虑到这一点,您可以按照以下思路进行:
List<E> result = new ArrayList<>(yourPriorityQueue.size());
while (!yourPriorityQueue.isEmpty()) {
result.add(yourPriorityQueue.poll());
}
Run Code Online (Sandbox Code Playgroud)
Queue给ArrayList构造函数在ArrayList 的构造函数中创建一个ArrayList并将其Queue作为参数传递的最简单方法.A 是a ,所以有效.CollectionQueueCollection
这是最简单的方法,我也相信最快的方式.
List<?> list = new ArrayList<>( myQueue );
Run Code Online (Sandbox Code Playgroud)