Si j'utilise un HashSet
d'une capacité initiale de 10 et un facteur de charge de 0,5 puis toutes les 5 éléments ajoutés au HashSet
seront augmentés ou d'abord la HashSet
est augmentée de 10 éléments et après à 15 à 20 atc. la capacité sera augmentée?HashSet facteur de charge
Répondre
C'est le deuxième cas. Le loadFactor de HashSet et hashMap est un facteur relatif.
Le facteur de charge est une mesure de la capacité du HashSet à atteindre sa capacité avant que sa capacité ne soit automatiquement augmentée. Lorsque le nombre d'entrées dans la table de hachage dépasse le produit du facteur de charge et de la capacité actuelle, la table de hachage est redessinée (les structures de données internes sont reconstruites) de sorte que la table de hachage a environ deux fois plus de paniers.
capacité initiale par défaut de la HashMap suffit 16 et le facteur de charge est 0.75f (à savoir 75% de la taille actuelle de la carte). Le facteur de charge représente à quel niveau la capacité HashMap doit être doublée.
Pour produit exemple de la capacité et le facteur de charge 16 * 0,75 = 12. Cela représente, après le stockage de la clé 12 - paire de valeurs dans le HashMap, sa capacité devient 32.
nice !!! Je cherchais cette explication pendant un moment. Donc, la valeur par défaut est 2/3, ce qui signifie qu'avec la taille initiale de 16 lorsque je remplis 12, cela augmentera l'espace. – ha9u63ar
Pour Java 7 et 8, le facteur de charge par défaut pour HashSet est de 0,75. – Kent