Comparator和Comparable,两者都是接口
Comparator代表的是比较器,顾名思义用于二叉树数据结构的TreeSet集合和TreeMap(以及子类),前者中比较里面元
素 ,后者比较的是键, 不定义泛型的情况下覆盖的方法是:(具体对象依据泛型而定)
int compare(object obj)Comparable是使某个类实现这个接口,然后这个类所产生的对象具有比较性,
即存二叉树数据结构的TreeSet集合和TreeMap(以及子类)时调用对象本身的compareTo功能进行排序,若存入的对象不具备
比较功能(即没有实现Comparable),则会存储失败.不定义泛型的情况下覆盖的方法是:(具体对象依据泛型而定)
int compareTo(object obj)
总结:如果只需要元素本身具备比较功能,用Comparable;
如果需要集合本身具备比较功能,用类实现Comparator,集合具备比较性只需这个类产生的对象可以直接传给这个集合进行构造
当存储的对象具备比较性,集合本身也具有比较器时,以比较器为准;
|