为什么这个值出来了键出不来呢,原因在哪啊,求帮助 import java.util.*; /* 2、请编写程序,存储自定义对象到HashMap集合中,并采用两种方式遍历 */ class Demo{ public static void main(String[] args){ Students1=newStudent("lisi",20); Students2=newStudent("wangwu",22); HashMap<Student,String>hm=newHashMap<Student,String>(); hm.put(s1,"01"); hm.put(s2,"02"); Set<Map.Entry<Student,String>> entry=hm.entrySet(); Iterator<Map.Entry<Student,String>> it=entry.iterator(); while(it.hasNext()){ Map.Entry<Student,String> m=it.next(); Studentkey=m.getKey(); Stringvalue=m.getValue(); System.out.println(key+" "+value); } } } class Student { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } private int age; Student(Stringname,intage){ this.name=name; this.age=age; } public int hashCode(){ final int p=31; int result=1; result=p*result+age; result=p+result+((name==null)?0:name.hashCode()); return result; } public boolean equals(Object obj) { if(!(obj instanceof Student)) throw new ClassCastException("类型不匹配"); Studentstu=(Student)obj; return this.name.equals(stu.name)&&this.age==stu.age; } public int CompareTo(Student s){ int num=new Integer(this.age).compareTo(new Integer(s.age)); if(num==0){ return new Integer(this.name).compareTo(new Integer(s.name)); } return num; } } |