Quel est le meilleur moyen de calculer le code de hachage d'un Map
, sachant qu'il peut contenir des valeurs d'entrée de types tels que: String
, ...?Java Map hash code
Map.hashCode()
renvoie un code de hachage peu profond. Cela signifie que si vous avez un String[]
dans votre carte, le Map.hashCode()
utilisera également le hachage retourné par le String[]
. Ce qui, malheureusement, n'est pas ce que je veux (l'implémentation Object.hashCode()
). Mais je veux la mise en œuvre Arrays.hashCode(String[])
.
Alors, quelle est la meilleure approche générique pour gérer cela?
Je suppose que votre carte est immuable? Si vous ajoutez/supprimez des entrées, votre hashCode() basé sur des valeurs est condamné. –
Je pense que la question initiale de la plupart des gens sera "pourquoi?" que faites-vous que vous avez besoin de changer le hashcode de la carte? calculer un "hachage" "profond" pourrait rendre cette opération très coûteuse ... –
@Kirk Woll: s'il vous plaît détail, quel est le point? – javaq