黑马程序员技术交流社区

标题: map使用,看看我这个程序到底哪里出错了? [打印本页]

作者: 李贺晓    时间: 2012-11-14 12:36
标题: map使用,看看我这个程序到底哪里出错了?
import java.util.*;
class MapTest2
{
public static void main(String[] args)
{
  HashMap<Student,String> hmap=new HashMap<Student,String>();
  hmap.put(new Student("张三",21),"北京");
  hmap.put(new Student("李四",18),"上海");
  hmap.put(new Student("王五",26),"广州");
  hmap.put(new Student("abc",21),"南京");
  Set<Map.Entry<Student,String>> entryset=hmap.entrySet();
  Iterator<Map.Entry<Student,String>> it=entryset.iterator();
  while(it.hasNext())
  {
   Map.Entry<Studengt,String> ma=it.next();
   Student stu=ma.getKey();
   String addr=ma.getValue();
   System.out.println(stu+"::地址:"+addr);
  }
}
}
class Student implements Comparable<Student>
{
private String name;
private int age;
public Student(String name,int age)
{
  this.name=name;
  this.age=age;
}
public int compareTo(Student s)
{
  int num=new Integer(this.age).compareTo(new Integer(s.age));
  if(num==0)
   return this.name.compareTo(s.name);
  return num;
}
public int hashCode()
{
  return name.hashCode()+age*12;
}
public boolean equals(Object obj)
{
  if(!(obj instanceof Student))
   throw new ClassCastException("类型不匹配");
  Student s=(Student) obj;
  return this.name.equals(s.name) && this.age==s.age;
}
public String getName()
{
  return name;
}
public int getAge()
{
  return age;
}
public String toString()
{
  return "姓名:"+name+":年龄:"+age;
}
}


编译时,出现的错误是

1.png (2.45 KB, 下载次数: 24)

错误提示

错误提示

作者: 颜峰    时间: 2012-11-14 12:41
Map.Entry<Studengt,String> ma=it.next();
   Student stu=ma.getKey();
   String addr=ma.getValue();
   System.out.println(stu+"::地址:"+addr);

第一行的student写错了,最后一行的分号是中文的
作者: 李贺晓    时间: 2012-11-14 12:45
颜峰 发表于 2012-11-14 12:41
Map.Entry ma=it.next();
   Student stu=ma.getKey();
   String addr=ma.getValue();

谢啦,看来真是太不小心了。。。。
作者: 王玮    时间: 2012-11-14 20:57
呵呵~
一开始我们都会 忘记 英文及中文下的标点符号  谨记即可;拼错 student 以后记得仔细哦·~ 加油!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2