The key is boxed()
the IntStream
into a Stream<Integer>
, then only convert to an Array.
StreamExample.java
package com.favtuts.java8.stream; import java.util.Arrays; import java.util.stream.IntStream; import java.util.stream.Stream; public class StreamIntegerExamples { public static void main(String[] args) { boxedIntStreamToIntegerArray(); } static void boxedIntStreamToIntegerArray() { //int[] -> IntStream -> Stream<Integer> -> Integer[] int[] num = {3, 4, 5}; //1. int[] -> IntStream IntStream stream = Arrays.stream(num); //2. IntStream -> Stream<Integer> Stream<Integer> boxed = stream.boxed(); //3. Stream<Integer> -> Integer[] Integer[] result = boxed.toArray(Integer[]::new); System.out.println(Arrays.toString(result)); // one line Integer[] oneLineResult = Arrays.stream(num).boxed().toArray(Integer[]::new); System.out.println(Arrays.toString(oneLineResult)); } }
Output
[3, 4, 5]
[3, 4, 5]
Download Source Code
$ git clone https://github.com/favtuts/java-core-tutorials-examples
$ cd java-basic/java8/stream