Core Java

Queue to List Conversion in Java

Queues and Lists are fundamental data structures in Java. The Java’s Queue interface represents a collection designed for holding elements prior to processing and used extensively in scenarios involving data processing, task scheduling, and more.

Sometimes, we may need to convert a Queue to a List for purposes such as random access, sorting, or utilizing list-specific operations. This article explores various methods for converting a Queue to a List in Java, along with code examples.

1. Using the ArrayList Constructor

One of the simplest ways to convert a Queue into a List is by using the ArrayList constructor that takes a collection.

public class ArrayListConstructorExample {

    public static void main(String[] args) {
        // Create a queue
        Queue<String> carQueue = new LinkedList<>();
        carQueue.add("Toyota");
        carQueue.add("Honda");
        carQueue.add("Ford");

        // Convert the queue to a list using ArrayList constructor
        List<String> list = new ArrayList<>(carQueue);

        // Display the list
        System.out.println("List: " + list);
    }
}

In this example, we convert the queue to a list by passing the queue to the ArrayList constructor. The resulting list contains all elements of the queue in the same order.

2. Using a Loop and Adding to a List

For a more manual approach, we can iterate through the Queue and add elements to the List one by one.

        ArrayList<String> list = new ArrayList<>();
        // Iterate through the queue and add elements to the list
        for (String name : carQueue) {
            list.add(name);
        }

3. Using Streams (Java 8+)

With Java 8, we can leverage the Stream API to convert a Queue to a List.

        // Convert the queue to a list using streams
        List<String> list = carQueue.stream().collect(Collectors.toList());

Here, we use the stream method to create a stream from the queue. We then use the collect method with Collectors.toList() to convert the stream to a list.

4. Using the addAll Method

Another way to convert a Queue to a List is by using the addAll method of the List interface.

        // Create an empty list
        List<String> list = new ArrayList<>();

        // Add all elements of the queue to the list
        list.addAll(carQueue);

In this approach, we create an empty ArrayList and use the addAll method to add all elements of the queue to the list. The addAll method ensures that the list contains all elements of the queue in the same order.

5. Using External Libraries

Using external libraries can provide additional functionality when converting a Queue to a List in Java. Libraries such as Guava and Apache Commons Collections offer utility methods that can simplify this process.

Note: Ensure the Apache Commons Collections and the Guava library are downloaded and included in the project’s classpath.

5.1 Using Guava

Guava’s Lists class provides a convenient newArrayList method that can be used to create a new List from an existing Collection (including Queues).

        // Convert the queue to a list using Guava
        List<String> list = Lists.newArrayList(carQueue);

This example uses Lists.newArrayList() from Guava to convert the queue to a list.

5.2 Using Apache Commons Collections

This library provides the CollectionUtils class with a utility method addAll that can be used to add elements from a Queue to an existing List.

        // Convert the queue to a list using Apache Commons Collections
        List<String> list = IterableUtils.toList(carQueue);
Fig. 1: Example Output from Java Queue to List Conversion
Fig. 1: Example Output from Java Queue to List Conversion

6. Conclusion

In this article, we explored different Java methods to convert a Queue into a List. Each method offers unique advantages for data handling, highlighting Java’s flexibility in collection management.

7. Download the Source Code

This article covers methods in Java on how to convert a queue into a list.

Download
You can download the full source code of this example here: Convert Queue to List in Java

Omozegie Aziegbe

Omos holds a Master degree in Information Engineering with Network Management from the Robert Gordon University, Aberdeen. Omos is currently a freelance web/application developer who is currently focused on developing Java enterprise applications with the Jakarta EE framework.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button