从Hashmap值创建一个新的Double

时间:2013-03-09 19:10:35

标签: java

我收到以下错误:

  

找不到符号,符号:变量值,位置变量行星类型Map<字符串,双>

在此行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());

2 个答案:

答案 0 :(得分:1)

地图没有任何名为value的公共字段。因此planet.value无效。如果要初始化长度等于地图大小的数组,请使用size()

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

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

答案 1 :(得分:0)

只需将其更改为planet.values()而不是'planet.values',即表示您正在尝试访问不调用该方法的字段。

所以这将是你的代码:

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

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