Uma implementação de SET é um conjunto. E como conjunto, não considera elemtentos repetidos. Ou seja: A={1, 3, 3} e B={1,3} São dois conjuntos com os mesmos elementos. E a soma dos elemtos de A é dois!!!
Ocorre que o HashSet muito provavelmente usa o método equals ou do objeto para compará-lo a outro. Como o método equals foi reescrito para a classe Prova, para retornar sempre true. Os Objetos desta classe serão sempre considerados “iguais” e teremos um conjunot sempre unitário!
O método hashCode que originalmente pertite obter o código de Hash do objeto (usado também para comparar) foi igualmente reescrito.
Acho que é isso!!!
Aquele abraço!
San
[quote=malsan]Uma implementação de SET é um conjunto. E como conjunto, não considera elemtentos repetidos. Ou seja: A={1, 3, 3} e B={1,3} São dois conjuntos com os mesmos elementos. E a soma dos elemtos de A é dois!!!
Ocorre que o HashSet muito provavelmente usa o método equals ou do objeto para compará-lo a outro. Como o método equals foi reescrito para a classe Prova, para retornar sempre true. Os Objetos desta classe serão sempre considerados “iguais” e teremos um conjunot sempre unitário!
O método hashCode que originalmente pertite obter o código de Hash do objeto (usado também para comparar) foi igualmente reescrito.
Acho que é isso!!!
Aquele abraço!
San[/quote]
Você acha? Pois está completamente certo.
Os sets utilizam os métodos equals e hashCode para identificar e organizar os seus elementos internos. Como os sets não aceitam elementos duplicados e, nesse caso, “tudo é a mesma coisa”, só haverá um elemento dentro do set.