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

Answer: 
The fastest is to use a LinkedList in the first place which can be used as a List or a Queue.

```
Queue q = new LinkedList();
List l = (List) q;

```

Otherwise you need to take a copy

```
List l = new ArrayList(q);

```

Note: When dealing with PriorityQueue, Use a loop, poll each element and add to list. PriorityQueue to List not maintaining the heap order.
Answering to old question for users who are already on java 8  

Java 8 provides the option of using streams and you can get a list from queue as:

For example:  

```
Queue<Student> queue = new LinkedList<>();
        Student s1 = new Student("A",2);
        Student s2 = new Student("B",1);
        Student s3 = new Student("C",3);
        queue.add(s1);
        queue.add(s2);
        queue.add(s3);

    List<Student> studentList = queue.stream().collect(Collectors.toCollection(ArrayList::new));

```