首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >toArray()返回object[]

toArray()返回object[]
EN

Stack Overflow用户
提问于 2020-02-07 01:29:19
回答 2查看 353关注 0票数 1

我尝试使用toArray()将ArrayList转换为数组,但它返回的是object[]而不是double[]。如下所示:

代码语言:javascript
复制
double [] arr = arrList.toArray(new Double[arrList.size()]);

我得到一个不兼容的类型错误。

这是arrList包含的内容:

代码语言:javascript
复制
I/System.out: [0.0, 2.455430030822754, 1.834529995918274, 0.7368429899215698, -0.5264459848403931, -1.5101100206375122, -1.8526500463485718, -1.6131700277328491, -0.9388419985771179, 0.053711701184511185, 0.35541099309921265, -0.18560799956321716, -0.884518027305603, -1.4304900169372559, -1.5486400127410889, -0.943471014499, 0.0]

下面是它的获取方式:

代码语言:javascript
复制
private void rec(SensorEvent event) {

    double x = event.values[0];

    arrList.add(x);

}

我尝试过不调整数组的大小(即使用新的双精度),尽管我认为这不会是问题,但这也不起作用。

我在网上寻找类似的Q,我发现的都是字符串示例,我在想Double可能是问题所在?不太确定。

这是很新的,所以很抱歉,如果很明显的话。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-07 01:32:06

代码语言:javascript
复制
double [] arr = arrList.toArray(new Double[arrList.size()]);

double[]是与Double[]不同的类型。虽然Java可以通过自动装箱和自动装箱在doubleDouble之间转换,但它不能从Double[]转换为double[]。您可以使用以下命令修复此问题:

代码语言:javascript
复制
Double [] arr = arrList.toArray(new Double[arrList.size()]);
票数 8
EN

Stack Overflow用户

发布于 2020-02-07 01:30:30

您可以使用:

代码语言:javascript
复制
Double[] array = arrList.toArray(Double[]::new);

注意,方法引用是在java 8中引入的,方法是在java 11中引入的。请参考Code-Apprentice's answer for java 7 compilant solution。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60100532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档