【发布时间】:2019-03-26 11:04:43
【问题描述】:
请原谅我的英语不好
我正在尝试创建一个 HashMap,其中一个 String 作为键,一个 Object 作为参数,我想在程序每次运行时对其进行初始化,以便将其添加到 HashMap 中的新键中。
问题是,并非所有值都返回,即第二个值返回一个奇怪的输出。
package javaex1;
import java.util.*;
public class Javaex1 {
public static void main(String[] args) {
Person obj = new Person("Eminem", "Male");
HashMap<String, Person> MapPerson = new HashMap<String, Person>();
MapPerson.put("Eminem", obj);
System.out.println(MapPerson);
}
}
对象
package javaex1;
public class Person {
String Name;
String Gender;
public Person (String name, String Gend) {
this.Name = name;
this.Gender = Gend;
}
public String getName() {
return Name;
}
public String getGender() {
return Gender;
}
}
非常感谢任何帮助或提示!提前感谢您的宝贵时间!
预期结果应该是“Eminem Male”。相反,我得到的是:
{Eminem=javaex1.Person@2a139a55}
【问题讨论】:
-
您正在获取对象的哈希码值。覆盖您的 toString 方法或尝试 System.out.println(MapPerson.collect());
标签: java dictionary oop hashmap jvm