这可能吗?我已经为此苦苦挣扎了一段时间。我最初是先转换为 Long []
,然后转换为 double []
,这让我可以编译,但随后给了我一个转换错误。我现在卡住了。
在这段代码中,我迭代了 HashMap 中的条目。
Object[] v = null;
for(Map.Entry<String,NumberHolder> entry : entries)
{
v = entry.getValue().singleValues.toArray(); //need to get this into double []
}
这是我的 numberHolder 类
private static class NumberHolder
{
public int occurrences = 0;
public ArrayList<Long> singleValues = new ArrayList<Long>();
}
最佳答案
非泛型 toArray
可能不是最优的,我建议您改用 for
循环:
Long[] v = new Long[entry.getValue().singleValues.size()];
int i = 0;
for(Long v : entry.getValue().singleValues) {
v[i++] = v;
}
现在您有一个 Long
对象数组 而不是 Object
。但是,Long
是整数值而不是 float 。您应该可以进行转换,但闻起来像是潜在的问题。
您也可以直接转换,而不是使用Long
数组:
double[] v = new double[entry.getValue().singleValues.size()];
int i = 0;
for(Long v : entry.getValue().singleValues) {
v[i++] = v.doubleValue();
}
概念:您不能尝试在此处转换数组,而是转换每个元素并将结果存储在新数组。
关于java - 在java中将Object []转换为double [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16149006/