public class Student {
private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Student(String name, String sex) {
super();
this.name = name;
this.sex = sex;
}
public Student() {
super();
}
}
public class MapStudent {
public static void main(String[] args) {
HashMap stu=new HashMap();
stu.put("jack", new Student("小明","男"));
stu.put("tom", new Student("小李","女"));
stu.put("lucy", new Student("小红","女"));
Set s=stu.keySet();
Iterator it=s.iterator();
while(it.hasNext()){
String key=(String)it.next();
String value=(String)stu.get(key);
System.out.println(key+value);
}
}
}
默认情况下直接输出某个对象就是调用对象的toString方法的,那你给Student添加一个toString方法,如下:
public String toString(){
return name+","+sex
}
HashMap存储的是Student类型的对象,不能转换成String的,你取值时value只能转换成Student或者Object.
while(it.hasNext()){
String key=(String)it.next();
Student value=(Student)stu.get(key);
System.out.println(key+value);
}
这样输出打印出的是内存地址,怎么才能打印出jack,小明,男?
student重写tostring'E5��以吧