我正在尝试打印“Contains”,但是,HashSet没有检测到Integer []值。它是否与被参考传递有关?如果我不想将实际的Integer []对象传递给方法的参数,我怎么能克服这个?
''
答案 0 :(得分:4)
这是因为数组没有以比较元素的方式实现hashCode
- 事实上,数组根本不会覆盖hashCode
(或equals
),因此实现来自Object
使用。
数组的hashCode
和equals
完全基于身份。
如果您想“克服”它,请使用根据元素值计算hashCode
和equals
的类型,例如ArrayList<Integer>
。
答案 1 :(得分:0)