Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将Double[]转换为Double。。。?_Java - Fatal编程技术网

Java 如何将Double[]转换为Double。。。?

Java 如何将Double[]转换为Double。。。?,java,Java,给定一个方法定义: public void create(double... values); 此方法的调用方式如下: List<Double> values = ...; Double[] doubles = values.toArray(new Double[0]); create(doubles); // wont work 列出值=。。。; Double[]doubles=values.toArray(新的Double[0]); 创建(双打);//行不通 为什么它不起

给定一个方法定义:

public void create(double... values);
此方法的调用方式如下:

List<Double> values = ...;
Double[] doubles = values.toArray(new Double[0]);
create(doubles);  // wont work
列出值=。。。;
Double[]doubles=values.toArray(新的Double[0]);
创建(双打);//行不通
为什么它不起作用

double[] unboxed = Stream.of(boxed).mapToDouble(Double::doubleValue).toArray();

归功于:

重载方法(
voidcreate(Double…value)
Double[]
Double[]
不能相互转换。您需要手动将数组.stream(input).mapToDouble(Function.identity()).toArray()转换为
Double[]
转换为
Double[]
在方法重载中。@Boristespider我说,只要方法的功能是unknown@helt不要使用
Double[]doubles=values.toArray(新的Double[0])
,而是使用
values.stream().map(Double::doubleValue.toArray()
。这样你就只能复制一次。另外,千万不要执行
.toArray(新Xxxx[0])
,因为它会创建一个空数组,然后丢弃它并创建一个正确大小的数组。当然,您知道开始时的正确大小,所以请使用它;这当然是回答问题的必要条件(我投你一票)。但是,如果可能的话,应该避免这样做,因为这实际上是对CPU周期的浪费。