Core Java

List to Long Array

Converting a list to a long[] array is a common task in Java programming. There are multiple ways to achieve this. In this article we will demonstrate how it can be implemented using streams API, List toArray method, and using the external Guava library. Before delving deeper, let’s explore the fundamentals of Arrays and Lists in Java. After gaining some understanding regarding these concepts, we can thoroughly examine each approach.

1. Introduction

Arrays and lists are fundamental data structures in Java, used to store and manipulate collections of elements. Each has its unique characteristics and use cases.

1.1 Arrays

An array is a fixed-size, ordered collection of elements of the same data type. In Java, arrays can store primitive data types like integers, doubles, or objects (such as instances of classes). To declare an array, you specify the data type of its elements followed by square brackets:

int[] integerArray = new int[5];
String[] stringArray = new String[10];

You can access elements in an array using their index, with the first element at index 0. Arrays offer fast access but have a fixed size, making it difficult to resize them dynamically.

1.2 Lists

A list, on the other hand, is a dynamic, ordered collection of elements. In Java, the ArrayList class is commonly used to implement lists. Lists can store elements of different data types and can dynamically grow or shrink in size:

import java.util.ArrayList;

ArrayList<String> stringList = new ArrayList<>();
stringList.add("Java");
stringList.add("Python");
stringList.add("C++");

Lists provide methods to add, remove, and access elements efficiently. Unlike arrays, lists can easily change in size during runtime, making them versatile for various programming tasks.

2. Using the List.toArray() Method

In Java, you can easily convert a List to an array using the List.toArray() method. This method allows you to transform the contents of a List into an array of the same type. Here’s an example demonstrating how to convert a List of strings into a String array:

ListToArrayExample.java

package com.jcg.example;

import java.util.ArrayList;
import java.util.List;

public class ListToArrayExample {
    public static void main(String[] args) {
        // Create a List of strings
        List<String> stringList = new ArrayList<>();
        stringList.add("Java");
        stringList.add("Python");
        stringList.add("C++");

        // Convert the List to an array of strings
        String[] stringArray = stringList.toArray(new String[0]);

        // Print the elements of the array
        for (String language : stringArray) {
            System.out.println(language);
        }
    }
}

In this example, the toArray() method is used on the stringList object. An empty String array is passed as an argument, which results in the conversion of the List to a String array.

2.1 Console Output

The Ide output will be –

Code Output

Java
Python
C++

3. Using the Guava Library

In Java, you can use the Guava library to easily convert a List to an array of the same type. Guava provides convenient methods to simplify this process.

First, make sure to add the Guava library to your project’s dependencies. Then, you can use the appropriate method provided by Guava to perform the conversion.

For Maven (pom.xml file)

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.1-jre</version> <!-- Use the appropriate version -->
</dependency>

For Gradle (build.gradle file)

implementation 'com.google.guava:guava:30.1-jre' // Use the appropriate version

Here’s an example demonstrating how to convert a List of integers to an Integer[] array:

ListToArrayExample2.java

package com.jcg.example;

import com.google.common.collect.Lists;
import com.google.common.primitives.Ints;
import java.util.List;

public class ListToArrayExample2 {
    public static void main(String[] args) {
        // Create a List of integers
        List integerList = Lists.newArrayList(1, 2, 3, 4, 5);

        // Convert the List to an array of integers using Guava
        Integer[] integerArray = Ints.toArray(integerList);

        // Print the elements of the array
        for (Integer num : integerArray) {
            System.out.println(num);
        }
    }
}

In this example, the Guava library’s Ints.toArray() method is used to convert a List of integers to an Integer[] array.

3.1 Console Output

The Ide output will be –

Code Output

1
2
3
4
5

4. Using the Stream.mapToLong() Method

In Java 8, Stream APIs can be used to convert a List of numbers into long[] array. Here is how you can do it:

ListToArrayExample3.java

package com.jcg.example;

import java.util.List;
import java.util.stream.Collectors;

public class ListToArrayExample3 {
    public static void main(String[] args) {
        // Create a List of numbers
        List numberList = List.of(1, 2, 3, 4, 5);

        // Convert the List to a long[] array using Stream API
        long[] longArray = numberList.stream()
                                    .mapToLong(Long::valueOf)
                                    .toArray();

        // Print the elements of the array
        for (long num : longArray) {
            System.out.println(num);
        }
    }
}

In this example, the stream() method is called on the numberList object to create a stream of integers. The mapToLong(Long::valueOf) operation converts each integer to a long value. Finally, the toArray() method is used to convert the stream of long values into a long[] array.

4.1 Console Output

The Ide output will be –

Code Output

1
2
3
4
5

5. Conclusion

In conclusion, Java provides several versatile methods and libraries to convert Lists to arrays, catering to various programming needs. Using the List.toArray() Method offers a straightforward approach. By invoking the toArray() method on a List, you can efficiently transform its elements into an array of the same type, providing a seamless way to work with collections and arrays in Java. This method ensures simplicity and ease of use, making it a popular choice for developers working with List data structures.

Additionally, Using the Guava Library enhances Java’s capabilities. Guava simplifies complex tasks by providing utility methods for common operations, including List to array conversions. By leveraging Guava’s functions like Ints.toArray(), developers can achieve conversions with concise, readable code. This library enriches Java’s functionality, enabling developers to focus on solving higher-level problems without worrying about low-level implementations.

Moreover, the introduction of Using the Stream. mapToLong() Method in Java 8 marked a significant advancement. Stream API’s mapToLong() method empowers developers to transform List elements into a primitive long array effortlessly. By creating a stream, mapping elements to long values, and converting them into an array, this method ensures both readability and performance, making it an elegant choice for modern Java applications.

Yatin

An experience full-stack engineer well versed with Core Java, Spring/Springboot, MVC, Security, AOP, Frontend (Angular & React), and cloud technologies (such as AWS, GCP, Jenkins, Docker, K8).
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