假设您有一些对象有几个字段,它们可以通过以下方式进行比较:
public class Person { private String firstName; private String lastName; private String age; /* Constructors */ /* Methods */ }
所以在这个例子中,当你问是否:
a.compareTo(b) > 0
您可能会问 a 的姓是否在 b 之前,或者 a 是否比 b 大,等等…
在不增加不必要的混乱或开销的情况下,在这些类型的对象之间进行多重比较的最简洁的方法是什么?
java.lang.Comparable
compareByFirstName()
compareByAge()
那么解决这个问题的最佳方法是什么?
您可以实现Comparator比较两个Person对象的 a,并且可以检查任意数量的字段。您可以在比较器中放入一个变量,告诉它要与哪个字段进行比较,尽管只编写多个比较器可能会更简单。
Comparator
Person