黑马程序员技术交流社区
标题: 为什么这个值出来了键出不来呢,原因在哪啊,求帮助 [打印本页]
作者: shilu 时间: 2015-10-12 15:47
标题: 为什么这个值出来了键出不来呢,原因在哪啊,求帮助
为什么这个值出来了键出不来呢,原因在哪啊,求帮助
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;
}
}
作者: zzh1026 时间: 2015-10-12 17:36
太乱还长,不看
作者: 疯狂的小豆丁 时间: 2015-10-17 12:56
Student是个对象,你这样取只能直接取出内存地址, System.out.println(key.getName()+":"+key.getAge()+" "+value);你试试
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |