Java 如何覆盖equals和hashcode以列出<;长期>;参数
我有一个名为“组”的类属性:Java 如何覆盖equals和hashcode以列出<;长期>;参数,java,Java,我有一个名为“组”的类属性: private List<Long> groups; 你不能。列表接口指定了它的和合同以及任何可能违反的更改的实现。您更新的问题的答案是:它取决于特定的平等标准 列表的默认equals方法比较大小和所有对应元素。这意味着,如果列表中的元素相同,但顺序不同,则它们并不相等。如果它符合你的平等条件,那么你肯定可以使用它。如果没有,您必须根据需要手动比较列表。谢谢,Louis,那么此属性不是类将覆盖的equals和hashcode的一部分,对吗?…什么?那个
private List<Long> groups;
你不能。
列表
接口指定了它的和合同以及任何可能违反的更改的实现。您更新的问题的答案是:它取决于特定的平等标准
列表的默认
equals
方法比较大小和所有对应元素。这意味着,如果列表中的元素相同,但顺序不同,则它们并不相等。如果它符合你的平等条件,那么你肯定可以使用它。如果没有,您必须根据需要手动比较列表。谢谢,Louis,那么此属性不是类将覆盖的equals和hashcode的一部分,对吗?…什么?那个问题没有意义。包含groups
字段的类可以实现自己的hashCode
和equals
契约,不管它喜欢什么,它只是不能更改groups
本身的hashCode
和equals
。很抱歉我的错误解释。。我只是想知道在equals和hashcode中使用这个属性是否有任何问题,就像另一个单独的字段,而不是集合。不,一点也不。XY问题?为整数列表重写equals和hashcode的目标是什么?
if(!groups.equals(other.groups))
return false