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自己定义一下比较方式就比较好解决了