Boa noite pessoal, tudo bom?
estou estudando para a certificação e fiquei em dúvida com uma situação. Imaginem que tenho o seguinte código:
class A{
private String nome;
public int hashCode(){
return 10;
}
public boolean equals(Object o){
return false;
}
}
public class teste{
public static void main(String[] args){
Set set = new HashSet();
A a1 = new A(); A a2 = new A(); A a3 = new A();
set.add(a1 ); set.add(a2); set.add(a3);
system.out.println(set.size());
set.remove(a1);
system.out.println(set.size());
}
}
Não levando em conta o contrato do equals e hashCode, e pensando que o hashCode é utilizado para organizar e buscar o elemento dentro da coleção, neste exemplo todos os elementos tem mesmo hashCode e o método equals retorna false, como que o objeto set consegue eliminar o objeto a1?
Desde já obrigado. 