Comparable和Comparator接口是什么?
如果我们想使用Array或Collection的排序方法时,需要在自定义类里实现Java提供Comparable接口。Comparable接口有compareTo(TOBJ)方法,它被排序方法所使用。我们应该重写这个方法,如果“this”对象比传递的对象参数更小、相等或更大时,它返回一个负整数、0或正整数。但是,在大多数实际情况下,我们想根据不同参数进行排序。比如,作为一个CEO,我想对雇员基于薪资进行排序,一个HR想基于年龄对他们进行排序。这就是我们需要使用Comparator接口的情景,因为Comparable.compareTo(Objecto)方法实现只能基于一个字段进行排序,我们不能根据对象排序的需要选择字段。Comparator接口的compare(Objecto1,Objecto2)方法的实现需要传递两个对象参数,若第一个参数比第二个小,返回负整数;若第一个等于第二个,返回0;若第一个比第二个大,返回正整数。
举一反三
内容
- 0
TreeSet用于存储自定义类型数据时要求该自定义类型实现()接口或者提供对该类型对象进行比较的比较器。 A: Set B: Iterator C: Comparable D: Comparator
- 1
使用Collections中的sort方法对集合进行排序时,如果不指定比较器,则要求集合中的元素类型必须实现()接口。 A: SortedSet B: Comparator C: NavigableSet D: Comparable
- 2
下面选项中,哪个是Comparator接口提供的方法
- 3
智慧职教: Comparable接口所在的包是( )。
- 4
欲构造Circle类的一个实例,此类实现了Comparable接口,下列方法正确的是( )。 A: Circle myCollect= new Object(); B: Comparable myCircle = new Comparable (); C: Circle myCircle= new Comparable (); D: Comparable myCircle = new Circle ();