我有一个名为 FormObject 的对象,它包含两个 ArrayList - oldBooks 和 newBooks - 两者都包含 Book 对象。
oldBooks 允许包含重复的 Book 对象
newBooks 本身不允许包含重复的 Book 对象,并且不能在 oldBooks 列表中包含 Book 对象的任何重复项。
重复 Book 的定义很复杂,我无法重写 equals 方法,因为该定义在 Book 对象的所有使用中并不通用。
我计划在 FormObject 类上有一个名为removeDuplicateNewBooks 的方法,它将执行上述功能。
您将如何实施这一点?我的第一个想法是使用 HashSets 来消除重复项,但无法覆盖 Book 对象上的 equals 意味着它不起作用。
您可以使用TreeSet与定制Comparator<Book>
:
- 构建
TreeSet
with a Comparator
实现你想要的自定义逻辑
- use
set.addAll(bookList)
Now the Set
仅包含独特的书籍。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)