假设我有一个Person
类,它具有名称,年龄,地址,电话和电子邮件等简单属性。Java对象的动态平等
我有一堆Sets
每个包含Person
对象。
我想动态地为每个集合定义Set
特定的等式,以便优雅地删除重复项。
对于实例:我想要一套基于电话删除重复人员,另一套设置为删除电子邮件中的重复人员对象。
我知道的唯一方法是多次分类Person
并根据我的要求重写equals,但这会导致类的数量爆炸。
在Comparators
的情况下允许。我可以为我需要/想要的同一对象定义尽可能多的匿名比较器。
具体来说,我想知道为什么在Java
我们只能有一个平等定义的对象,但可以定义多个比较?
这种情况下最好的方法是什么?