A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么这个值出来了键出不来呢,原因在哪啊,求帮助
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;
    }
}

2 个回复

倒序浏览
太乱还长,不看
回复 使用道具 举报
Student是个对象,你这样取只能直接取出内存地址, System.out.println(key.getName()+":"+key.getAge()+"  "+value);你试试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马