How to Convert Java 8 Stream to Array

By |2019-05-26T13:30:57+05:30May 26th, 2019|java8|

Here we will see how to convert Java 8 Stream to Array of strings or objects.

Convert Java 8 Stream to Array:

The easiest way to convert the Java 8 stream to Array is to use the toArray(IntFunction<A[]> generator).

1. Stream of Strings into String Array:

Create a stream of strings and use the toArray() method on stream to convert into Array.

// Stream of Strings to String[]
 Stream<String> stringStream = Stream.of("JAVA", "SPRING", "HIBERNATE");
 String[] stringArray = stringStream.toArray(String[]::new);
 Arrays.stream(stringArray).forEach(System.out::println);

// Or using size

Stream<String> stringStream2 = Stream.of("JAVA", "SPRING", "HIBERNATE");
stringArray = stringStream2.toArray(size -> new String[size]);
Arrays.stream(stringArray).forEach(System.out::println);

Output:

Terminal
JAVA
SPRING
HIBERNATE

2. Stream of ints to int Array:

Creating a stream of ints from 1 to 10 using IntSteam and converting it into int array using a mapToInt() method.

Stream<Integer> intStream = IntStream.rangeClosed(1, 10).boxed();
int[] array =  intStream.mapToInt(x -> x).toArray();
Arrays.stream(array).forEach(System.out::println);

3. Stream of Objects into Object Array:

Creating Stream of Book objects using Stream.of() method and converting it into Object[] using toArray() method.

Book class:

Book.java
public class Book {
    private int id;
    private String name;
    private double price;

    public Book(int id, String name, double price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

Converting Stream<Book> to Object[]

// Stream of Objects to Array of objects
Stream<Book> objectStream = Stream.of(new Book(1,"Thinking in Java",1500),
        new Book(2,"Inide Java Vertual Machine",570));
Object[] stringArray2 = objectStream.toArray(Object[]::new);
Arrays.stream(stringArray2).forEach(System.out::println);

Output:

Terminal
Book{id=1, name='Thinking in Java', price=1500.0}
Book{id=2, name='Inide Java Vertual Machine', price=570.0}

4. References:

Happy Learning 🙂

About the Author:

Hi Folks, you have reach this so far, that shows you like what you are learning. Then why don't you support us to improve for bettor tutorials by leaving your valuable comments and why not you keep in touch with us for latest updates on your favorite blog @ facebook , twitter , Or Google+ ,

Leave A Comment