Java 8 - Convert Array to List Using Stream

📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.

🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.

▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube

▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube

Introduction

In Java 8, converting an array to a list is a common task when working with collections. While the traditional approach uses Arrays.asList(), the Stream API offers a functional and flexible way to convert an array into a list using streams. By converting the array to a stream, you can easily perform additional operations like filtering, mapping, or sorting before collecting the elements into a list.

In this guide, we will learn how to convert an array to a list using Java 8's Stream API.

Solution Steps

  1. Define the Array: Create an array of elements (e.g., strings or integers) that you want to convert to a list.
  2. Convert the Array to a Stream: Use Arrays.stream() or Stream.of() to convert the array to a stream.
  3. Collect the Stream to a List: Use the collect(Collectors.toList()) method to collect the stream elements into a list.
  4. Display the Result: Print or use the resulting list.

Java Program

Example 1: Convert an Array of Strings to a List

import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class ArrayToListUsingStream { public static void main(String[] args) { // Step 1: Define the array of strings String[] fruits = {"Apple", "Banana", "Orange", "Mango"}; // Step 2: Convert the array to a Stream and collect to a List List<String> fruitList = Arrays.stream(fruits) .collect(Collectors.toList()); // Step 3: Display the List System.out.println(fruitList); } } 

Output

[Apple, Banana, Orange, Mango] 

Explanation

Step 1: Define the Array

We define an array of strings:

String[] fruits = {"Apple", "Banana", "Orange", "Mango"}; 

Step 2: Convert the Array to a Stream and Collect to a List

We use Arrays.stream() to convert the array into a stream, and then collect the stream elements into a list using Collectors.toList():

List<String> fruitList = Arrays.stream(fruits) .collect(Collectors.toList()); 

Step 3: Display the List

We print the resulting list:

System.out.println(fruitList); 

Example 2: Convert an Array of Integers to a List

import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class ArrayToListOfIntegers { public static void main(String[] args) { // Step 1: Define the array of integers Integer[] numbers = {1, 2, 3, 4, 5}; // Step 2: Convert the array to a Stream and collect to a List List<Integer> numberList = Arrays.stream(numbers) .collect(Collectors.toList()); // Step 3: Display the List System.out.println(numberList); } } 

Output

[1, 2, 3, 4, 5] 

Explanation

Step 1: Define the Array

We define an array of integers:

Integer[] numbers = {1, 2, 3, 4, 5}; 

Step 2: Convert the Array to a Stream and Collect to a List

We use Arrays.stream() to convert the array to a stream and collect the elements into a list:

List<Integer> numberList = Arrays.stream(numbers) .collect(Collectors.toList()); 

Step 3: Display the List

We print the resulting list:

System.out.println(numberList); 

Example 3: Convert a Primitive Array to a List (Using boxed())

For primitive arrays like int[], you need to box the primitive values into their wrapper class (Integer) before collecting them into a list.

import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class PrimitiveArrayToList { public static void main(String[] args) { // Step 1: Define the primitive int array int[] numbers = {10, 20, 30, 40, 50}; // Step 2: Convert the primitive int array to a Stream and collect to a List List<Integer> numberList = Arrays.stream(numbers) .boxed() // Convert from int to Integer .collect(Collectors.toList()); // Step 3: Display the List System.out.println(numberList); } } 

Output

[10, 20, 30, 40, 50] 

Explanation

Step 1: Define the Primitive Array

We define a primitive int array:

int[] numbers = {10, 20, 30, 40, 50}; 

Step 2: Convert the Array to a Stream and Box the Primitives

We use Arrays.stream() to create an IntStream from the primitive array. The boxed() method converts the int values to their wrapper class Integer:

List<Integer> numberList = Arrays.stream(numbers) .boxed() .collect(Collectors.toList()); 

Step 3: Display the List

We print the resulting list:

System.out.println(numberList); 

Conclusion

In Java 8, converting an array to a list is easily achieved using the Stream API. By using Arrays.stream() or Stream.of(), you can convert an array into a stream and collect the elements into a list using Collectors.toList(). For primitive arrays, the boxed() method is required to convert primitive types to their wrapper classes. This approach provides a flexible and efficient way to process arrays in a functional style.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare