黑马程序员技术交流社区

标题: 关于比较器 [打印本页]

作者: 任振铭    时间: 2015-10-12 01:01
标题: 关于比较器
为什么s2-s1打印从大到小,s1-s2打印从小到大,请说的详细点

import java.util.Comparator;
import java.util.TreeSet;

public class Text28 {
        public static void main(String[] args) {
                TreeSet<String> treeSet = new TreeSet<>(new ComparatorDemo());
                treeSet.add("adf");
                treeSet.add("asdf");
                treeSet.add("adfd");
                treeSet.add("asd");
                treeSet.add("a");
                treeSet.add("ag");
                treeSet.add("fdffffffa");
                System.out.println(treeSet);
               
               
        }
}
class ComparatorDemo implements Comparator<String>{

        @Override
        public int compare(String s1, String s2) {
                int num = s2.length()-s1.length();    ////////////////////////////////////为什么s2-s1打印从大到小,s1-s2打印从小到大,请说的详细点
                return num == 0 ? s2.compareTo(s1):num;
        }
       
}

作者: Rzzz    时间: 2015-10-12 01:35
* 调用的对象(就是当前存入的对象)是compare方法的第一个参数,集合中的对象(已经添加进去的对象)是compare方法的第二个参数     好好理解这句话,看下那个是做根节点对象调用这个方法, 那个是做比较后存入集合的对象.




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