日期:2014-05-20  浏览次数:20722 次

Comparable接口中的comareTO()与Comparator接口中的compare()的区别
两个接口中提供的方法都是比较   然后排序!   两者之间有什么区别呢!
compareTo()也能够完成比较;
compare()也能够完成比较;compare()是   Conllections   类中的sort(list   list,compare()对象)

就是不明白他俩有什么去别   什么时候用哪个方法!
请举例书明   谢谢!

------解决方案--------------------
mark
------解决方案--------------------
当你实现compareTo()后
比如用sort(list),那么系统就会调用你的这个list的实现的compareTo方法,这是默认的。
而如果你对默认的不满意,自己实现了compare()的类,比如Comp implements compare
那么就得指明sort(list,new Comp());
------解决方案--------------------
楼上说的没错
有时候需要自定义一个comparator进行比较
从设计模式上考虑的话,用comparator不会破坏原有的封装,比如你要对一个已经定义的类进行排序,而你又不能修改这个类的时候,用comparator自己定义一下比较方式就比较好解决了