IIUC il deux objets différents du même type peuvent être stockés dans un HashSet même si les deux objets retournent la même valeur lorsque hashCode()
est appelée. Par exemple, selon this article "Aa" et "BB" retournent le même hashcode
(2112), mais évidemment je peux mettre ces deux chaînes dans un HashSet
et ils seront tous deux contenus dans le Set
sans "Aa" écrasant "BB".Le hachage est-il utilisé pour accélérer les recherches d'objets dans les collections?
L'objectif principal de hashCode()
est-il donc de trouver une instance dans un ensemble, ou des collections en général, plus rapidement? Cela implique également que si nous retournons une constante pour hashCode()
que cela va ralentir les performances d'une collection qui stocke de tels objets (Dans un JPA context as suggested by this linked article for example)?