A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hel 中级黑马   /  2013-11-12 19:00  /  933 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

comparable和comparator到底有什么区别呢?
在什么时候用comparable
什么时候用comparator 呢?

3 个回复

正序浏览
本帖最后由 明月几时有 于 2013-11-12 23:51 编辑

TreeSet底层数据结构是二叉树结构,有两种排序方式:
一:让元素自身具有比较性,元素需要实现comparable接口,重写compareto方法,这种方法也叫元素的自然顺序或者叫默认顺序
二:当元素自身不具有比较性,或者比较性不是我们所要的,就要再定义一个构造器comparator,在集合初始化的时候传入。

系统的总结了一下,重要的是第二句话!
回复 使用道具 举报
如果你的比较方式是中规中矩的,比如 10 < 11, a 在 z 前面,就可以用 Comparable
如果你的比较方式比较奇葩,比如 奇数在前偶数在后,aAbBcC这么排,就得用 Comparator
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马