在一次采访中询问了这个问题。问题是为什么Strin
g和其他包装类实现Comparable
而不是Comparator
接口。我试图解释Comparator
基本上是提供自定义排序,Comparable
是默认的自然排序顺序。同样从设计原则的角度来看,Comparable
是紧密耦合的,Comparator
是松散耦合的。但是,我无法澄清String
实施Comparable
而不是Comparator
的原因。
答案 0 :(得分:3)
字符串实现Comparable
,因为它们是可以比较的内容。一般来说,实现Comparable
的事情往往具有自然顺序,就像你提到的那样。
Comparator
是一种比较事物的方式。制作比较器时,您需要定义一种比较事物的方法。您可以在给定类型上制作许多比较器,以不同方式比较事物。