在java中将Object []转换为double []

use*_*843 4 java arrays double object

这可能吗?我一直在努力解决这个问题.我最初是Long []先铸造然后转换为double []让我编译但是然后给了我一个错误的铸造.我现在卡住了.

在这段代码中,我正在迭代我的hashmap中的条目.

 Object[] v = null;
 for(Map.Entry<String,NumberHolder> entry : entries)
 {
       v = entry.getValue().singleValues.toArray(); //need to get this into double []
 }
Run Code Online (Sandbox Code Playgroud)

这是我的numberHolder类

private static class NumberHolder
{
    public int occurrences = 0;
    public ArrayList<Long> singleValues = new ArrayList<Long>();
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*eid 7

非泛型toArray可能不是最佳的,我建议你改用for循环:

Long[] v = new Long[entry.getValue().singleValues.size()];
int i = 0;
for(Long v : entry.getValue().singleValues) {
  v[i++] = v;
}
Run Code Online (Sandbox Code Playgroud)

现在你有一个对象数组Long而不是Object.但是,它Long是一个整数值而不是浮点值.你应该能够施放,但它闻起来像一个潜在的问题.

您也可以直接转换而不是使用Long数组:

double[] v = new double[entry.getValue().singleValues.size()];
int i = 0;
for(Long v : entry.getValue().singleValues) {
  v[i++] = v.doubleValue();
}
Run Code Online (Sandbox Code Playgroud)

概念:您不能尝试此处转换数组,而是转换每个元素并将结果存储在新数组中.