Comparable和Comparator
来源:互联网 发布:淘宝宠物航空箱 编辑:程序博客网 时间:2024/05/14 13:03
Comparable和Comparator是用来排序的两个接口,它们都是Java集合框架中用来排序的两个成员。
Comparable的特点:
1、该接口下有一个方法:
public int compareTo(T o);
负责比较当前对象与指定对象。如果当前对象小于指定对象,返回负数;如果大于指定对象,返回正数;如果等于指定对象,返回0。注意:JDK API中强烈建议(但没有严格限制)该方法与equals方法保持一致。
2、Comparable在java.lang包下,该接口主要的功能是赋予实现了该接口的类排序的功能。
3、在Collections和Arrays对容器内的元素进行排序时,就是使用了该接口。如Collections中的排序方法:
public static <T extends Comparable<? super T>> void sort(List<T> list);
List中的元素必须是实现了Comparable接口的类的对象,否则编译不通过。
该方法最后还是会调用Arrays的排序方法,在Arrays的排序方法中,由于容器中的对象实现了Comparable接口,在进行排序时会调用该接口的compareTo()方法。
Comparator的特点:
1、该接口下有两个方法:
int compare(T o1, T o2);
boolean equals(Object obj);
2、与Comparable接口相比,该接口只是提供了一个比较两个对象的功能,而不是使实现了该接口的类自身有排序的功能。
3、与Comparable接口类似,在Collections和Arrays对容器内的 元素进行排序时,除了使用默认的排序方式外,还可以指定排序方式,也就是指定Comparator。如Collections中的排序方法:
public static <T> void sort(List<T> list, Comparator<? super T> c);
在进行排序时,会调用方法参数c(即为实现了Comparator接口的对象)指定的排序方式。
按照我的理解,简单点来说,Comparable实现了对象本身和另外一个对象的比较,而Comparator则实现了两个对象之间的比较。在集合比较中,Comparable要求比较的对象必须是实现了Comparable接口的对象,而Comparator则要求比较的两个对象必须与容器内元素的类型一致。
- 关于 Comparable 和 Comparator
- 比较Comparable和Comparator
- comparable 和 Comparator 区别
- Comparable和Comparator
- Comparator和Comparable
- Comparator和Comparable
- Comparable和Comparator
- Comparable 和 Comparator
- Comparator和Comparable比较
- comparable 和 comparator
- Comparator和Comparable
- Comparator和Comparable用法
- comparable和comparator比较
- Comparator和Comparable区别
- Comparable和Comparator
- Comparator和Comparable
- java Comparable和Comparator
- Comparable和Comparator比较
- FusionCharts参数的详细说明和功能特性
- ORACLE 当月、本周、当年SQL查询
- 从某些地方粘贴中文到plsql,中文变成乱码的解决
- FusionCharts3v破解版下载
- MFC与坦克大战系列(奇迹冬瓜)---chapter4(坦克总程序代码)
- Comparable和Comparator
- 条形码那些事
- Matlab中的一些小技巧
- LCA(最近公共祖先)问题
- iOS开发 小技巧
- Ubuntu12.04安装skype
- 精妙的SQL语句
- macosx 工具合集
- [Win32基础]线程同步概述