最后一句的输出应该怎么写才会有键值对输出? java.lang.ClassCastException

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��以吧