如何将LinkedHashMap值存储到double类型数组中

时间:2014-11-10 09:57:54

标签: java linkedhashmap

我想将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;

2 个答案:

答案 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 自动完成所以不用担心