如何将其返回到数组或double列表中

时间:2015-12-07 11:06:26

标签: java arrays java-stream flatmap

我无法将其检索到数组或集合中,我该怎么做呢?

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 个答案:

答案 0 :(得分:0)

目前还不清楚你想要达到什么目的。目前,您有一个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();