【问题标题】:how to return this into an array or list of double如何将其返回到数组或双精度列表中
【发布时间】:2016-03-11 23:11:18
【问题描述】:

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

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();

【问题讨论】:

    标签: java arrays java-stream flatmap


    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多