我在Java中有一个包含对象的ArrayList,这些对象由字符串名称和数字组成。
我想检查列表中是否有任何两个对象,然后更新其中一个对象的数量,然后删除另一个,这样就不会再计算一次了。
我已经知道它是如何工作的,但我有一个大问题,两个方法,“包含”和“删除”不适用于我想要使用的对象。 对于expamle我想删除包含名称XXXX的第一个对象,它根本不会删除该东西。 似乎这两种方法都不是针对自制对象制作的。
有没有办法覆盖remove和contains方法? Eclipse对自动生成的东西没有帮助。
btw:我已经为我的列表中的对象定义了一个自己的“等于”方法,该方法没有任何问题(我一直认为arraylist方法会使用对象方法)。
感谢。
答案 0 :(得分:3)
equals()
和hashCode()
方法应始终串联提供。
查看What issues should be considered when overriding equals and hashCode in Java?