读书人

Compareable接口跟Comparator

发布时间: 2012-12-22 12:05:07 作者: rapoo

Compareable接口和Comparator

需求:

???? 做一个对象排序的功能,需要按不同规则排序

?

Compareable接口和Comparator接口都是用来实现集合排序的,只是Comparable是在集合内部定义的方法实现的排序,而Comparator是在集合外部实现的排序,所以,如想实现排序,就需在集合外定义Comparator接口的方法或在集合内实现Compareable接口的方法。


Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 String、Integer 自己就可以完成比较大小操作);
Comparator 是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比较。
可以说一个是类自已完成比较,一个是外部程序实现比较的差别而已。

?

?

Compareable接口??????

??????? 要对对象进行比较大小则需要实现Compareable接口

?????? Compareable接口只有一个方法int compareTo(Object obj) 实现了此接口的对象列表(或数组)可以通过Collections.sort(Arrays.sort)来排序

?新建一个实现Comparator的实现类PersonComparator:

public class MyComparator {    public static class HotelComparator implements Comparator {    public int compare(Object first, Object second) {    return ((Hotel)first).getHotelNameEn().compareToIgnoreCase(((Hotel)second).getHotelNameEn());    }    }}

?...

读书人网 >编程

热点推荐