在我的 类 中实现 Comparable 接口有什么意义?
What is point of implementing the Comparable interface in my classes?
我不明白实现 Comparable
接口的意义,因为我不能使用比较运算符 <
、<=
、>=
和>
对于我的自定义 类 就像我能够用像 C++ 这样的语言覆盖运算符;我还是要直接调用compareTo
方法。
我可以编写自己的布尔方法,如 isEqual
或 bigger
,它们与 compareTo
方法一样有用,甚至更有用。
我错过了什么吗?实施它有什么意义?
实施 Comparable
的重点是能够根据不同的标准对数组、集合等进行排序。
其他类可以接受Comparable类型的参数。他们不会知道您的特殊方法,但他们知道接口并且可以在实现后使用它。
例如,方法 Collections.sort() 可以使用 Comparable:http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort(java.util.List,%20java.util.Comparator)
Comparable
接口为已实现的排序算法提供了一种通信方式,使用自定义方法进行比较是不可能的。
我不明白实现 Comparable
接口的意义,因为我不能使用比较运算符 <
、<=
、>=
和>
对于我的自定义 类 就像我能够用像 C++ 这样的语言覆盖运算符;我还是要直接调用compareTo
方法。
我可以编写自己的布尔方法,如 isEqual
或 bigger
,它们与 compareTo
方法一样有用,甚至更有用。
我错过了什么吗?实施它有什么意义?
实施 Comparable
的重点是能够根据不同的标准对数组、集合等进行排序。
其他类可以接受Comparable类型的参数。他们不会知道您的特殊方法,但他们知道接口并且可以在实现后使用它。
例如,方法 Collections.sort() 可以使用 Comparable:http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort(java.util.List,%20java.util.Comparator)
Comparable
接口为已实现的排序算法提供了一种通信方式,使用自定义方法进行比较是不可能的。