【发布时间】:2011-04-05 17:46:26
【问题描述】:
我有一个名为 FormObject 的对象,它包含两个 ArrayList - oldBooks 和 newBooks - 两者都包含 Book 对象。
oldBooks 允许包含重复的 Book 对象 newBooks 不允许在其内部包含重复的 Book 对象,并且不能在 oldBooks 列表中包含任何重复的 Book 对象。
重复 Book 的定义很复杂,我无法覆盖 equals 方法,因为该定义在 Book 对象的所有用途中并不通用。
我计划在 FormObject 类上有一个名为 removeDuplicateNewBooks 的方法,它将执行上述功能。
您将如何实施?我的第一个想法是使用 HashSets 来消除重复项,但无法覆盖 Book 对象上的 equals 意味着它不起作用。
【问题讨论】:
-
那么,您是如何检查图书平等 atm 的?
-
如果你知道判断重复的逻辑,那么你应该能够使用相同的逻辑覆盖equals方法。
-
如果书籍相等的定义不是普遍的,你将如何普遍地判断书籍是否是重复的?将其定义为覆盖等于与以其他方式定义它有何不同?
标签: java collections duplicates equals