黑马程序员技术交流社区

标题: 求大神看下这个程序该怎么改 [打印本页]

作者: 费破的可    时间: 2013-11-1 15:34
标题: 求大神看下这个程序该怎么改
本帖最后由 费破的可 于 2013-11-1 18:18 编辑

import java.util.*;
class StuNameComparator implements Comparator<Student>
{
        public int compare(Student s1,Student s2)
        {
                int num = s1.getName().compareTo(s2.getName());
                if(num==0)
                        return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
                return num;
        }
}

class  MapTest2
{
        public static void main(String[] args)
        {
                TreeMap<Student,String> hm = new TreeMap<Student,String>(new StuNameComparator());
                hm.put(new Student("lishi01",24),"beijing");
                hm.put(new Student("lishi03",25),"wuahni");
                hm.put(new Student("lishi05",23),"shanghai");
                hm.put(new Student("lishi02",44),"nanjing");
                Set<Map.Entry<Student,String>> entrySet = hm.entrySet();
                Iterator<Map.Entry<Student,String>> it = entrySet.iterator();
                while(it.hasNext())
                {
                        Map.Entry<Student,String> me = it.next();
                        Student stu = me.getKey();
                        String adrr = me.getValue();
                        System.out.println(stu+"...."+adrr);
                }
        }
}
---------- javac ----------
MapTest2.java:11: 错误: 找不到符号
                int num = s1.getName().compareTo(s2.getName());
                                                   ^
  符号:   方法 getName()
  位置: 类型为Student的变量 s2
MapTest2.java:11: 错误: 找不到符号
                int num = s1.getName().compareTo(s2.getName());
                            ^
  符号:   方法 getName()
  位置: 类型为Student的变量 s1
MapTest2.java:13: 错误: 找不到符号
                        return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
                                                                                ^
  符号:   方法 getAge()
  位置: 类型为Student的变量 s2
MapTest2.java:13: 错误: 找不到符号
                        return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
                                             ^
  符号:   方法 getAge()
  位置: 类型为Student的变量 s1
4 个错误

输出完成 (耗时 1 秒) - 正常终止

作者: 魏-玉-彪    时间: 2013-11-1 17:13
代码不全,不知你的Student对象从哪来的
作者: 零下五度的水    时间: 2013-11-1 17:37
跑起,无误,是不是你没加载Student类啊
作者: 费破的可    时间: 2013-11-1 18:17
零下五度的水 发表于 2013-11-1 17:37
跑起,无误,是不是你没加载Student类啊

加载了啊
作者: 王雷1    时间: 2013-11-1 20:12
是你的Student类出错了 把Student类 发上来
你的Student类 明显就不对
你看看你的代码
int num = s1.getName().compareTo(s2.getName());
num是学号吗? 还是 什么之类的。  反正肯定是int吧。  但是 你=后面的 是一个String 吧。 ?  这样 肯定过不去啊




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