我想将LinkedHashMap
值存储到double
类型array
中。怎么做?
我试过这种方式
Double[] avg= (Double[]) averageMap.values().toArray();
其中averageMap
是:
LinkedHashMap<String, Double> averageMap = new LinkedHashMap<String, Double>();
但我有以下例外:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Double;
答案 0 :(得分:1)
toArray
函数可能有点复杂。它返回Object[]
,无法转换为Double[]
。您必须使用此代码段:
Collection<Double> values = averageMap.values();
Double[] avg = values.toArray(new Double[values.size()]);
答案 1 :(得分:0)
下面的代码对你有用,但还不够好
Object[] objArray = averageMap.values().toArray();
double[] dblArray = new double[objArray.length];
for (int i = 0; i < objArray.length; i++) {
dblArray[i] = Double.parseDouble(objArray[i].toString());
}
averageMap.values().toArray();
方法返回object []所以你必须将它强制转换为Double或将其解析为double []
但是不好练习要将它解析为double.instead of double use Double class.it是包装类所以autoboxing 自动完成所以不用担心