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周期的浪费。