Java 中 Comparable 和 Comparator 有何不同?

534 total views, 3 views today

Comparable 和 Comparator 都有比较的含义,那么他们之前有什么区别?

1.Comparator

Comparator 是一个接口,一个类如果实现了这个接口,必须实现 compareTo 方法,也就是意味着这个类的实例之间可以比较大小了。

2.Comparator

某些场景下,你不能操控某些类,比如这个类是来自其他类库的。那么这个类的比较,只能在外部实现,这时候,就可以使用 Comparator 接口了。List.sort 方法输入的参数就是一个 Comparator 接口。

3. 如何选择

 

如果一个类可以实现 Comparable,那么就可以在类实例之间比较。

Comparator 是在类外部比较,常常是作为一个参数传入到排序方法。

很多场景下,两种方式都可以使用,比如创建 TreeSet 的时候,既可以往构造函数中传入 Comparator 接口,也可以把 TreeSet 的泛型类型实现 Comparable 接口。

 

参考:https://www.programcreek.com/2011/12/examples-to-demonstrate-comparable-vs-comparator-in-java/

原创文章,转载请注明出处!http://www.javathings.top/java中comparable和comparator有何不同?/

About: wusq


发表评论

邮箱地址不会被公开。 必填项已用*标注