Question: What is the fastest way to convert a `Queue` into a `List` while keeping the Queue order?

Answer: 
Pass `Queue` To `ArrayList` Constructor
=======================================

The easiest way to just create a [`ArrayList`](http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html) and pass your [`Queue`](http://docs.oracle.com/javase/8/docs/api/java/util/Queue.html) as an argument in the [constructor](http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#ArrayList-java.util.Collection-) of ArrayList that takes a [`Collection`](http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html). A `Queue` is a `Collection`, so that works.

This is the easiest way and I believe fastest way too.

```
List<?> list = new ArrayList<>( myQueue );

```
If you're converting from **`PriorityQueue`** to a `List`, remember that it is in fact a heap, so the ordering is determined using the `poll()` method, in which case, doing it by the constructor way as discussed in some of the other answers here, won't preserve the natural ordering of the queue.

Taking that into consideration, you can go along these lines:

```
List<E> result = new ArrayList<>(yourPriorityQueue.size());
while (!yourPriorityQueue.isEmpty()) {
    result.add(yourPriorityQueue.poll());
}

```