Comparator 比较器|学习笔记

简介: 快速学习 Comparator 比较器

开发者学堂课程【Java 高级编程Comparator  比较器】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/362


Comparator  比较器


内容介绍:


1.基于  Comparator  的排序处理

2. Comparable 与 Comparator 的区别

 

Comparator 属于一种挽救的比较器支持,其主要的目的是解决一些没有使用 Comparable 排序的类的对象数组排序。

 

范例:现在程序项目己经开发完成了,并且由于先期的设计并没有去考虑到所谓的比较器功能。

 

Class Person

private String nane;

private int age;

public Person( String name, int age) {

this.name = name;

this.age = age;

}

 

@Override

publie int comparelo(Person per) {

return this.age-per,age;

}

 

@Override

public String StringtoString( ) {

Return “[Person类对象]姓名,”+this.name+“年龄”+this.age +“\n”;

}

 

publie class JavaAPIDDemo {

Public static void main(String[ ] args) throw Exception {

Person data [ ] = new Person[ ] {

new Person("小强-A ",80);

new Person("小强-B ",50);

new Person("小强-C",100);

Arrays.sort(data,new Personcomparator( ) );

System.out.println( Arrays.toString(data));

}

}

class Personcomparator implements Comparator<Person> {

public int compare(Person pl, Person p2) {

return pi.getAge() - p2.getAge();

}

}

后来经过了若干版本的迭代更新之后发现需要对 Person 类进行排序处理,但是又不能够去修改 Person 类(无法实现 Compparable 接口),所以这个时候就需要采用一种挽救的形式来实现比较,在 Arravs 类里面排序有另外一种实现。

 

基于 Comparator 的排序处理:

public static<T-voidsort(TIa. Comparator-super T>c):

图片32.png

在 java.util.Comparator 里面最初只定义有一个排序的 compar()方法(public int compare(T o1.T o2)),

但是后来持续发展,又定义了许多 static 方法。

 

 

面试题:

Comparable 与 Comparator 的区别

l java.lang.Comparable 是在类定义的时候实现的父接口,主要用于定义排序规则,里面只有 compareTo()方法。

l java.util.Comparator 是挽救的比较器操作,需要设罝单独的比较器规则类实现排序,里面有compare()方法。

相关文章
|
2月前
|
Java
Comparator与Comparable有什么区别
【8月更文挑战第16天】Comparator与Comparable有什么区别
46 5
|
5月前
|
Java
Comparable和Comparator两种比较器详解
Comparable和Comparator两种比较器详解
58 0
Comparable与Comparator对象比较
Comparable与Comparator对象比较
48 0
排序Comparable 和 Comparator的区别
排序Comparable 和 Comparator的区别
108 0
|
Java
Java对象的比较和排序(Comparator和Comparable)
Java对象的比较和排序(Comparator和Comparable)
154 0
Java对象的比较和排序(Comparator和Comparable)
|
Java
说说Comparator比较器那些用法
关于java的排序,在java8之后有了函数式接口之后,就产生了很多种Comparator比较器的写法。细数一下那些常用的比较器。
1352 1
说说Comparator比较器那些用法
Comparable与Comparator有什么区别?
Comparable与Comparator有什么区别?
212 0
关于Comparator和Comparable的理解
关于Comparator和Comparable的理解
113 0
|
存储 Java 索引
【Java集合类】之TreeSet集合与Comparable/Comparator排序
【Java集合类】之TreeSet集合与Comparable/Comparator排序
142 0