从Hashmap值创建一个新的双精度对象



我得到以下错误:

找不到符号,符号:变量值,位置类型为Map&lt的变量行星;String,Double>

Double[] Total = new Double [planet.values];

下面是我的代码:
public static void main(String[] args) {
    Map<String, Double> planet = new HashMap();
    Double Weight = 205.00;
    planet.put("Earth", 1.00);
    planet.put("Moon", .378);
    planet.put("Mercury", .166);
    planet.put("Jupiter", 2.364);
    planet.put("Venus", .907);
    planet.put("Uranus", .889);
    System.out.println("Amount of gravity on each planet: " + planet + "n");  

    Double[] Total = new Double [planet.values];
    System.out.println(planet.values());

Map没有任何名为value的公共字段。所以planet.value是无效的。如果你想初始化一个长度等于map大小的数组,使用size():

Double[] total = new Double[planet.size()];

同样,请尊重Java命名约定。变量以小写字母开头

将其改为planet.values()而不是'planet "。值’时,您试图访问该字段而不是调用该方法。

那么这就是你的代码:

Collection<Double> values = planet.values();
Double[] total = values.toArray(new Double[values.size()]);

顺便说一下,数组的toString()方法不呈现值。如果您想将值写入控制台,请使用Arrays.toString(array)

最新更新