【发布时间】:2013-04-09 07:10:05
【问题描述】:
假设我有一个Person 类,其属性包括姓名、年龄、地址、电话和电子邮件。
我有一堆Sets,每个都包含Person 对象。
我想为每个集合动态定义 Set 特定相等性,以便优雅地删除重复项。
例如:我希望一组用于删除基于电话的重复人员,另一组用于删除带有电子邮件的重复人员对象。
我知道的唯一方法是多次继承 Person 并根据我的要求覆盖 equals,但这会导致类数量激增。
这在Comparators 的情况下是允许的。我可以根据需要/想要为同一个对象定义尽可能多的匿名比较器。
具体来说,我想了解为什么在Java 中我们只能定义一个对象的相等性,但可以定义多个比较器?
在这种情况下最好的方法是什么?
【问题讨论】:
标签: java set comparator