程序员社区

(Java集合面试题)Comparable和Comparator接口是什么?

如果我们想使用Array或Collection的排序方法时,需要在自定义类里实现Java提供Comparable接口。

Comparable接口有compareTo(T OBJ)方法,它被排序方法所使用。我们应该重写这个方法,如果“this”对象比传递的对象参数更小、相等或更大时,它返回一个负整数、0或正整数。

但是,在大多数实际情况下,我们想根据不同参数进行排序。

比如,作为一个CEO,我想对雇员基于薪资进行排序,一个HR想基于年龄对他们进行排序。这就是我们需要使用Comparator接口的情景,因为Comparable.compareTo(Object o)方法实现只能基于一个字段进行排序,我们不能根据对象排序的需要选择字段。

Comparator接口的compare(Object o1, Object o2)方法的实现需要传递两个对象参数,若第一个参数比第二个小,返回负整数;若第一个等于第二个,返回0;若第一个比第二个大,返回正整数。

Java面试题

赞(0) 打赏
未经允许不得转载:IDEA激活码 » (Java集合面试题)Comparable和Comparator接口是什么?

一个分享Java & Python知识的社区