Ste*_*n C 31
在equals上的Java阵列型方法等效于==,因为Java阵列"类"不覆盖Object.equals.
如果要"按值"比较数组,则需要使用适当的java.util.Arrays.equals(...)方法,或者自己实现.
如果你HashMap使用数组作为键或值,这将使equals行为奇怪(从你的角度来看).这就是链接文章所说的内容.但是,如果将数组用作键或值类,则数组语义仅影响HashMap.equals相等性.如果你不这样做,那么HashMap应该按预期工作.
(HashMap::equals类上相等的javadoc 有点涉及,但它们基本上归结为取两个入口集,比较它们的大小,然后做Map.当然,这很昂贵,但它应该适用于所有s1.containsAll(s2)正确的类实现Map界面.)
Eya*_*der 11
这篇文章是对的.只要可以使用相同的方法比较关键对象和值对象,就可以使用equals()方法安全地比较散列图.在本文中,映射值是数组,它们没有按预期实现equals().相反,使用ArrayList可以解决问题.
| 归档时间: |
|
| 查看次数: |
58740 次 |
| 最近记录: |