Java 如何按多个字段比较对象

假设你有一些具有多个字段的对象,可以通过以下方式进行比较:

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对象的,并且可以根据需要检查任意多个字段。你可以在比较器中放入一个变量,以告知要与哪个字段进行比较,尽管编写多个比较器可能会更简单

以上是 Java 如何按多个字段比较对象 的全部内容, 来源链接: utcz.com/qa/434075.html

回到顶部