Perché i costruttori ConcurrentSkipListMap non ci consentono di impostare initial capacity
come HashMap?Perché non è possibile impostare la capacità iniziale per ConcurrentSkipListMap?
5
A
risposta
6
Poiché questa struttura dati è supportata da più LinkedList per i quali un parametro del costruttore di capacità iniziale non ha significato.
HashMap è supportato da un array (spazio di memoria contiguo) per il quale ha senso impostare una capacità iniziale perché andando oltre la dimensione iniziale di questa tabella fa sì che HashMap rialloca una nuova tabella con una dimensione maggiore che è molto costosa.
+1
(Ma per HashMap, il rovescio della medaglia è che è anche costoso sovrastimare in modo significativo le dimensioni della mappa ...) –
Problemi correlati
- 1. E 'possibile dare a Python una capacità iniziale (ed è utile)
- 2. Dimensioni di capacità iniziale più efficienti per StringBuilder?
- 3. Parametri di inizializzazione HashMap (caricamento/capacità iniziale)
- 4. angolare non è possibile impostare la proprietà di non definito
- 5. Perché è possibile dichiarare una variabile senza un valore iniziale?
- 6. Quando dovrei usare ConcurrentSkipListMap?
- 7. dimensione iniziale per l'ArrayList
- 8. SDK Brightcove per iOS - Impostare l'ora iniziale
- 9. Impostare valore iniziale per la colonna con autoincrement
- 10. È possibile ignorare il valore iniziale per un oggetto ReactiveObject?
- 11. È possibile impostare ProgressIndicator?
- 12. Non è possibile impostare LD_LIBRARY_PATH per il processo Java
- 13. Come è possibile impostare data e ora per la notifica
- 14. Come impostare la capacità CAP_SYS_NICE su un utente Linux?
- 15. Perché non è possibile impostare la finestra o il documento su indefinito o nullo?
- 16. Perché TreeMap di Java non consente una dimensione iniziale?
- 17. Impostare l'altezza iniziale di CollapsingToolbarLayout
- 18. perché non è possibile utilizzare il posizionamento assoluto di iframe per impostare l'altezza/larghezza
- 19. Perché non è possibile sovrascrivere la variabile mutabile in scala?
- 20. Perché non è possibile risolvere la sospensione di STRING?
- 21. Esiste un confronto delle capacità di elenco iniziale per lingue diverse?
- 22. quadro ionico non è possibile impostare l'icona dimensione
- 23. boost :: La funzione membro della capacità di stable_vector non restituisce la capacità assegnata
- 24. Perché non è possibile rilevare l'eccezione interna?
- 25. È possibile impostare la chiave degli oggetti django-tastypie?
- 26. Perché non è possibile utilizzare questo tipo.type per nuove istanze
- 27. Perché è pratica comune raddoppiare la capacità dell'array quando è pieno?
- 28. TypeError Uncaught: Non è possibile impostare la proprietà '0' di non definito "
- 29. come impostare lo stato iniziale in redux
- 30. La migliore capacità iniziale di HashMap durante l'indicizzazione di un elenco
@MarkoTopolnik skiplist sono nuove per me. Ho bisogno di un'implementazione di una mappa ordinata e quella mappa dovrà prosperare modifiche simultanee da più thread. Quindi stavo cercando ConcurrentSkipListmap> ho usato Cocurrenthashmap prima e ho usato intialCapacity in modo che il rehashing non avvenga mai. – Geek
@Geek - tempo di leggere un buon libro delle strutture dati. –
@StephenC Reading Cormen e tutti ma non ancora andati a SkipLists. Alberi neri coperti coperti in rosso. – Geek