Home >Java >javaTutorial >How Can I Efficiently Convert a List to an int[] in Java?

How Can I Efficiently Convert a List to an int[] in Java?

Linda Hamilton
Linda HamiltonOriginal
2024-12-17 12:55:25607browse

How Can I Efficiently Convert a List to an int[] in Java?

Converting List to int[] in Java: A Solution Using Java 8 Streams

Java programmers often encounter the need to convert a List to an int[] array. While a loop can be used for this conversion, it is inefficient and error-prone. Fortunately, Java 8 streams provide a more concise and elegant solution.

1. Using mapToInt()

Streams provide the mapToInt() method, which allows you to convert each element of a stream to a primitive int value. To convert a List to an int[] using mapToInt(), follow these steps:

import java.util.List;

class ListToIntArrayExample {

    public static void main(String[] args) {
        List<Integer> list = List.of(1, 2, 3, 4, 5);

        // Convert the list to an int[] using mapToInt()
        int[] intArray = list.stream()
                              .mapToInt(Integer::intValue)
                              .toArray();

        // Print the converted int[]
        for (int i : intArray) {
            System.out.println(i);
        }
    }
}

In this example, we use the stream() method on the list to create a stream of integers. We then apply the mapToInt() method with a lambda expression that simply returns the integer value of each element. Finally, we use toArray() to convert the stream back to an int[].

2. Using Unboxing

Since the compiler knows that the result of the lambda in mapToInt() must be of type int, we can simplify the lambda by omitting the explicit cast to int:

...
int[] intArray = list.stream()
                      .mapToInt(i -> i)
                      .toArray();
...

3. Inferring the Generic Type

Since the compiler can infer the generic type of the stream, we can omit the Integer type in the lambda:

...
int[] intArray = list.stream()
                      .mapToInt(i -> i)
                      .toArray();
...

These methods provide efficient and straightforward ways to convert a List to an int[] in Java.

The above is the detailed content of How Can I Efficiently Convert a List to an int[] in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn