Как вернуть это в массив или список двойных

Я не могу получить это в массив или коллекцию, как я должен это сделать?

Stream<double[]> pyt = IntStream.rangeClosed(1, 100)
            .boxed().flatMap(a->IntStream.rangeClosed(a, 100)
                    .mapToObj(b->new double[]{a,b,Math.sqrt(a*a+b*b)})
                    .filter(t->t[2]%1==0));

это не работает

double[] arr = (double[])pyt.toArray();

1 ответ

Непонятно, чего именно вы хотите достичь. В настоящее время у вас есть поток double[] массивы. Если вы хотите собрать их в double[][] массив, вам нужно написать:

double[][] arr = IntStream.rangeClosed(1, 100)
                .boxed()
                .flatMap(a->IntStream.rangeClosed(a, 100)
                .mapToObj(b->new double[]{a,b,Math.sqrt(a*a+b*b)})
                .filter(t->t[2]%1==0))
                .toArray(double[][]::new);

Если вы хотите сгладить его double[] массив, вам нужно написать

double[] arr = IntStream.rangeClosed(1, 100)
                .boxed()
                .flatMap(a->IntStream.rangeClosed(a, 100)
                .mapToObj(b->new double[]{a,b,Math.sqrt(a*a+b*b)})
                .filter(t->t[2]%1==0))
                .flatMapToDouble(Arrays::stream)
                .toArray();
Другие вопросы по тегам