【发布时间】:2015-07-14 16:29:54
【问题描述】:
Set 和 List 之间的主要区别在于该集合不允许重复。所以我试图创建一个Set<Integer[]> 而不是List<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 方法,以便 set 函数的 add 方法可以避免同时承认 [0, 4, 5] 和 [4, 5, 0]?
【问题讨论】:
-
你为什么不使用
Set<Set<Integer>>或类似的?或者,Set<MyIntegerBag>?您是否因任何原因与Integer[]绑定? -
不,你不能为数组覆盖
equals。 -
有一个类似的问题,答案在:stackoverflow.com/questions/12292513/… 在那个例子中,他们使用了原始类型,但您可以使用采用 Object[] 数组的方法。
-
@nneonneo 非常感谢。我的大脑没有建立联系。你介意张贴作为回复,以便我可以给你这个线程的复选标记吗?谢谢。
-
我可以添加一个响应,虽然看起来更好的响应已经出现