黑马程序员技术交流社区
标题:
关于treeset集合排序的问题
[打印本页]
作者:
920792433
时间:
2015-10-8 10:46
标题:
关于treeset集合排序的问题
Treeset集合排序有两种方式,comparable和comparetor的区别,什么时候用哪一个?求大神讲详细点,我有点不懂。
作者:
Synaric
时间:
2015-10-8 10:58
Comparable用于默认排序行为
Comparator用于自定义、多样化排序行为
一个类只能实现一次Comparable接口,但可以有多个Comparator
Comparator覆盖Comparable行为(可以类比个性化定制,手机盖有个出厂的默认样式,但不同用户可以定制自己的手机盖)
作者:
itheima_casper
时间:
2015-10-8 13:33
楼上详细。 Comparator优先于Comparable
作者:
YaYa
时间:
2015-10-8 14:32
comparetor介个常用
作者:
IT黑马_梧桐
时间:
2015-10-8 20:51
匿名类构造comparetor优先于comparable
作者:
LLLLL
时间:
2015-10-10 16:00
TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序。(比较的前提:两个对象的类型相同)。
java提供了一个Comparable接口,该接口里定义了一个compareTo(Object obj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象就可以比较大小。当一个对象调用该方法与另一个对象进行比 较,例如obj1.comparTo(obj2),如果该方法返回0,则表明这两个对象相等;如果返回一个正整数,则表明obj1大于obj2;如果该方 法返回一个负整数,则表明obj1小于obj2.
TreeSet的自然排序是根据集合元素的大小,TreeSet将他们以升序排列。如果需要实现定制排序,例如降序,则可以使用Comparator接口。该接口里包含一个int compare(T o1, T o2)方法,该方法用于比较o1和o2的大小。
如果需要实现定制排序,则需要在创建TreeSet集合对象时,并提供一个Comparator对象与该TreeSet集合关联,由该Comparator对象负责集合元素的排序逻辑。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2