Je suis en train de mettre en œuvre une fonction de hachage personnalisée, si je reçois un certain nombre de collisions dans un godet HASHMAP, comment puis-je savoir combien d'éléments sont stockés dans le seau? P>
3 Réponses :
Il n'y a pas de moyen intégré pour déterminer si une collision s'est produite. Vous devrez étudier la manière dont la collection (HASHMAP) distribue des valeurs de code HASHCODE aux godets et refléter le processus vous-même, surveiller vos inserts pour garder une trace des collisions. P>
On peut contourner les restrictions d'accès à l'aide de la réflexion. Voir ma réponse.
Vous pouvez écrire du code réfléchissant pour accéder aux godets internes du hashmap et les inspecter vous-même. P>
Il n'y a pas de support direct à cela dans l'API. La variable de membre supposer que vous évaluez les fonctions de hachage et ne le faisant pas en production Code, vous pouvez avoir adopté ces contraintes à l'aide de la réflexion. P> J'ai réussi à imprimer le contenu des godets. Pour analyser, les métriques de distribution ne devraient pas être difficiles de ce point. Voici le code: p> SUBLASHMAP: strong> p> < Pré> xxx pré> table code>, utilisée pour stocker les godets, n'est même pas publique, donc prolonger la classe ne vous mènera pas loin.
Pas exactement un duplicata mais un post similaire Stackoverflow.com/questions/3455457/ ...