user4769214
user4769214

Reputation:

Java 8: IntStream to Integer[]

I am writing simple program which will eventually plot the run times of various sorting algorithms written in Java. The general interface of a sorting algorithm is via a method: public void sort(Comparable[] xs)

I am attempting to use Java 8's stream mechanism to generate random test cases along the following lines:

public static IntStream testCase(int min, int max, int n) {
    Random generator = new Random();
    return generator.ints(min, max).limit(n);
}

My question is, how can I convert an object of type IntStream to an Integer[]?

Upvotes: 12

Views: 5288

Answers (1)

Ferrybig
Ferrybig

Reputation: 18834

You should box the IntStream to a Stream<Integer>, then call toArray to make a array of it:

Integer[] arr = testCase(1,2,3).boxed().toArray(Integer[]::new);

Upvotes: 24

Related Questions