Se uso un HashSet
con una capacità iniziale di 10 e un fattore di carico di 0,5 poi ogni 5 elementi aggiunti saranno aumentate la HashSet
o prima del HashSet
è aumentata di 10 elementi e dopo a 15 a 20 atc. la capacità sarà aumentata?HashSet
HashSet
risposta
È il secondo caso. Il loadFactor di HashSet e hashMap è un fattore relativo.
Il fattore di carico è una misura di quanto è possibile ottenere l'HashSet pieno prima che la sua capacità venga aumentata automaticamente. Quando il numero di voci nella tabella hash supera il prodotto del fattore di carico e la capacità corrente, la tabella hash viene rehashed (ovvero, le strutture di dati interne vengono ricostruite) in modo che la tabella hash abbia circa il doppio del numero di bucket.
capacità iniziale predefinita del HashMap serve è 16 e fattore di carico è 0.75f (cioè il 75% delle dimensioni della carta). Il fattore di carico rappresenta a quale livello la capacità di HashMap deve essere raddoppiata.
Ad esempio il prodotto della capacità e fattore di carico come 16 * 0,75 = 12. Ciò rappresenta che dopo aver memorizzato la chiave 12 - coppia di valori nella HashMap, la sua capacità diventa 32.
nice !!! Stavo cercando questa spiegazione per un po '. Quindi il default è 2/3, il che significa che con la dimensione iniziale di 16 quando compilo 12, aumenterà lo spazio. – ha9u63ar
Per Java 7 e 8, il fattore di caricamento predefinito per HashSet è 0,75. – Kent