我不明白这个java程序如何将输出显示为零。我相信它应该是1.据我所知,它不允许同一个键被多次使用。有人可以透彻解释一下吗?
import java.util.HashMap;
import java.util.Map;
public class Names {
private Map<String, String> m = new HashMap<>();
public void names(){
m.put("Mickey", "Mouse");
m.put("Mickey", "Mouse");
}
public int size(){
return m.size();
}
public static void main(String[] args) {
Names names = new Names();
System.out.println(names.size());
}
}
输出:0
答案 0 :(得分:3)
问题在于,您编写的用于向HashMap添加对象的方法永远不会被运行,您可能需要执行以下操作之一:
public void names(){
m.put("Mickey", "Mouse");
m.put("Mickey", "Mouse");
}
需要
public Names(){
m.put("Mickey", "Mouse");
m.put("Mickey", "Mouse");
}
或
public static void main(String[] args) {
Names names = new Names();
System.out.println(names.size());
}
需要
public static void main(String[] args) {
Names names = new Names();
names.names();
System.out.println(names.size());
}
答案 1 :(得分:0)
在您的代码中
public void names(){
m.put("Mickey", "Mouse");
m.put("Mickey", "Mouse");
}
不是java类的构造函数。 您应该将其定义为
public Names(){
m.put("Mickey", "Mouse");
m.put("Mickey", "Mouse");
}
请阅读此链接:https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html