gpt4 book ai didi

java - 如何覆盖数组的 equals 方法?

转载 作者:行者123 更新时间:2023-11-29 09:39:05 34 4
gpt4 key购买 nike

Set 和 List 之间的主要区别是 Set 不允许重复。所以而不是 List<Integer[]>我正在尝试创建一个 Set<Integer[]>这样就没有两个元素是相等的。但是当我阅读 Set<Integer[]> 时得到以下结果

[0, 4, 5]
[3, 4, 1]
[4, 5, 0]
[0, 3, 6]
[1, 3, 4]
[1, 2, 7]

对于我的实现,[0, 4, 5][4, 5, 0]被认为是平等的。因此我的问题是:有没有办法覆盖 Integer[] 的 equals 方法?这样 add set函数的方法可以避免同时承认[0, 4, 5][4, 5, 0]

最佳答案

简短的回答:你不能。根本没有覆盖数组类中任何内容的机制。

相反,请考虑为您的对象使用替代容器。你可以使用 Set<Integer>对于对象,创建一个 Set<Set<Integer>> ,因为您似乎想要进行无序比较。

或者,为了更精细的控制,考虑使用您自己的类来包装数组或集合并具有例如Set<MyIntegerBag> .然后您将完全控制所使用的比较操作。

关于java - 如何覆盖数组的 equals 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31412338/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com