我得到以下错误:
找不到符号,符号:变量值,位置类型为Map<的变量行星;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)
。