【问题标题】: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();