黑马程序员技术交流社区

标题: 帮我看看那里有问题,关于自定义比较器的 [打印本页]

作者: 曾小贤OL    时间: 2014-8-27 14:07
标题: 帮我看看那里有问题,关于自定义比较器的
没有养成写注释习惯,找问题有点难,代码如下:
package Test;

import java.util.*;

public class Test1 {
        public static void main(String[] args) {
                TreeSet ts = new TreeSet(new myCom());
                ts.add("a");
                ts.add("b");
                ts.add("abcd");
                ts.add("abc");
                Iterator it = ts.iterator();
                while (it.hasNext()) {
                        sop(it.next());
                }
        }

        public static void sop(Object obj) {
                System.out.println(obj);
        }

}

// 自定义比较器
class myCom implements Comparator {

        public int compare(String str1, String str2) {
                int num = new Integer(str1.length()).compareTo(str2.length());
                if (num == 0)
                        return s1.compareTo(s2);
                return num;
        }
}
打印结果就一个啊!问题出在哪啊?

作者: 曾小贤OL    时间: 2014-8-27 14:17
来大神帮帮忙解答下啊!!!
作者: 何艳梅    时间: 2014-8-27 15:01
你的比较器的方法根本就没有重写Comparator的compare(),
把这一行class myCom implements Comparator {改成
class myCom implements Comparator<String> {就好啦。

作者: 曾小贤OL    时间: 2014-8-27 15:26
何艳梅 发表于 2014-8-27 15:01
你的比较器的方法根本就没有重写Comparator的compare(),
把这一行class myCom implements Comparator {改成 ...

用泛型,我试下
作者: 范靖明    时间: 2014-8-27 15:31
类型转换了么?




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