在java中,这里有一个catch。对象已经被编译,因此hash()和equals()方法不能被覆盖。把它放到一个集合中,然后回到列表中将不起作用,因为唯一性标准当前没有在equals()中定义,并且这不能被覆盖。删除对象列表中的重复项而不依赖于集合
回答
你应该仍然能够创建子类并创建equals
和hashcode
工作的方法,除非类/方法是final
。
如果是这种情况,您可以使用组合,基本上为您要放入集合的东西创建一个包装,并让包装的equals
和hashcode
正确地实现合同,以包装物件。
你处于困境中,因为我正在阅读的是原始类没有遵循equals
和hashcode
的合约,这在Java中是一个真正的问题。这是一个非常严重的错误。
有时哈希码变得棘手/昂贵... –
当然,但它仍然必须是正确的。 – hvgotcodes
问题是如果比较便宜,TreeSet方法可能会更好。原来的问题并没有说有什么好的哈希码。 –
为您的物品写一个自定义Comparator并使用Collections.sort()对您的物品进行分类。然后通过查看循环中的列表来删除重复项。
...或者使用'Comparator'和'TreeSet' –
a compareTo
方法将返回-1
,0
,1
;如果0
,请从列表中删除。
- 1. Java:Equalator? (删除对象集合中的重复项)
- 2. 如何删除对象集合中的重复项?
- 3. 组合两个列表并删除重复项,而不删除重复项在原始列表
- 4. 删除集合中的重复项
- 5. 用Python删除对象列表中的重复项
- 6. 从对象集合中删除项目
- 7. 重新排列集合而不添加/删除项目?
- 8. GroupBy从IEnumerable对象列表中删除重复项
- 9. 当删除集合中的项目时,ObservableCollection依赖项属性不会更新
- 10. 删除Maven Pom中的重复依赖项
- 11. 更新依赖对象的集合
- 12. 删除列表中的重复项
- 13. 删除列表中的重复项
- 14. 如何从基于自定义Java对象而不是基元类型的列表中删除重复项?
- 15. 删除Python中的重复项Pandas DataFrame不删除重复项
- 16. 消除maven依赖项重复
- 17. 从Python列表中删除重复项
- 18. 从Django列表中删除重复项
- 19. odoo one2many列表中删除重复项
- 20. 从Python列表中删除重复项
- 21. 从C++列表中删除重复项
- 22. Python从列表中删除重复项?
- 23. Python - 从复杂对象的有序列表中删除重复项?
- 24. 如何删除依赖项和存储库的重复定义?
- 25. 反复从类对象(Python)中的列表中删除项目
- 26. WPF集合依赖项属性添加重复
- 27. T-SQL基于列删除重复项
- 28. 从列表中删除子集和重复项?
- 29. 如何删除从属项目中相同的依赖项源的重复
- 30. 删除组合框中的重复项
你在'equals()'方法中没有定义'唯一性'的标准是什么? – Atreys