Eu também dei uma olhada no Eclipse a declaração do método contains e nos comentário do método ele fala que utiliza o equals:
/**
* Returns {@code true} if this list contains the specified element.
* More formally, returns {@code true} if and only if this list contains
* at least one element {@code e} such that
*** {@code Objects.equals(o, e)}.**
*
* @param o element whose presence in this list is to be tested
* @return {@code true} if this list contains the specified element
*/
public boolean contains(Object o) {
return indexOf(o) >= 0;
}
E posteriormente ao entrar na "super implementação" da pra ver de fato que utiliza o método equals:
public boolean contains(Object o) {
Iterator<E> it = iterator();
if (o==null) {
while (it.hasNext())
if (it.next()==null)
return true;
} else {
while (it.hasNext())
if (o.equals(it.next()))
return true;
}
return false;
}
Espero ter ajudado! valeu