黑马程序员技术交流社区
标题:
求解 关于集合
[打印本页]
作者:
杨强
时间:
2011-10-26 01:20
标题:
求解 关于集合
Comparable和Comparator区别是什么
作者:
石头
时间:
2011-10-26 01:26
comparable& Comparator 都是用来实现集合中的排序的,只是Comparable是在集合内部定义的方法实现的排序,Comparator是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义Comparator接口的方法compare()或在集合内实现Comparable接口的方法compareTo()。
Comparable是一个对象本身就已经支持自比较所需要实现的接口(如String Integer自己就可以完成比较大小操作)
而Comparator是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比较。
这是搜索到的答案。。。本人还是菜鸟。
作者:
olkldksl
时间:
2011-10-26 07:15
这是集合排序要用到的,一种排序方法是让元素自身具备比较性,元素类需要实现comparable接口,覆盖compareTo()方法;
另一种排序方法是当元素自身不具备比较性,或者具备的比较性不是所需的,这时候就需要让集合自身具备比较性,定义一个比较器(实现了comparator接口的类对象),将比较器作为参数,传递给集合的构造函数。
作者:
刘浩
时间:
2011-10-26 08:32
他们是TreeSet集合两种排序方式。
comparable:
让元素自身具备比较性,需要元素死心啊comparable接口。覆盖comparareTO方法。
这种排序有局限性:1.元素自身不具备比较性。2.具备的比较性不是所有需要的。
所有有了第二种排序、
Comparator:
需呀定义一个类实现Comparator接口,覆盖compare方法,并将接口的子类对象作为参数传递给treeSer集合的够杂函数,也就是自定义比较器的方法。
如果自然排序和比较器同时存在,以比较强为主.
作者:
黄健
时间:
2011-10-26 08:58
java api 中是这样解释的
Comparable接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序,类的 compareTo 方法被称为它的自然比较方法。实现此接口的对象列表(和数组)可以通过Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。
Comparator强行对某个对象 collection 进行整体排序 的比较函数。可以将 Comparator 传递给 sort 方法(如 Collections.sort 或 Arrays.sort),从而允许在排序顺序上实现精确控制。还可以使用 Comparator 来控制某些数据结构(如有序 set或有序映射)的顺序,或者为那些没有自然顺序的对象 collection 提供排序。
作者:
杨强
时间:
2011-10-26 09:22
了解了 3q
作者:
想好了再写
时间:
2011-10-26 09:39
来过,学习了
话说我好像没看这里呢!!
看来还得回去看教程里前面的东西了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2