¿Por qué los constructores ConcurrentSkipListMap nos permiten establecer el initial capacity
como HashMap?¿Por qué no puedo establecer la capacidad inicial para un ConcurrentSkipListMap?
5
A
Respuesta
6
Porque esta estructura de datos está respaldada por múltiples LinkedList para quienes un parámetro constructor de capacidad inicial no tiene ningún significado.
El HashMap está respaldado por una matriz (espacio de memoria contiguo) para lo cual tiene sentido establecer una capacidad inicial porque pasar el tamaño inicial de esta tabla hace que HashMap reasigne una nueva tabla con un tamaño aumentado que es muy costoso.
+1
(Pero para HashMap, la otra cara es que también es costoso sobreestimar significativamente el tamaño del mapa ...) –
Cuestiones relacionadas
- 1. Capacidad inicial de vector en C++
- 2. ¿Por qué no puedo usar DataTrigger para establecer TextBox.IsEnabled = True?
- 3. ¿Cómo establecer la capacidad CAP_SYS_NICE para un usuario de Linux?
- 4. Capacidad inicial de los tipos de colección, p. Dictionary, List
- 5. ¿Por qué es la capacidad predeterminada de ArrayList 10?
- 6. .NET ConcurrentDictionary capacidad inicial configurada en número primo arbitrario en lugar de la capacidad esperada en la documentación de ejemplo de MSDN. ¿Por qué?
- 7. ¿Por qué no puedo establecer un diseño para una página en un QStackedWidget en el diseñador?
- 8. ¿Por qué no hay argumento de capacidad en los constructores para los contenedores?
- 9. ¿Por qué no puedo establecer esta restricción única en PostgreSQL?
- 10. ¿Cuándo debería usar ConcurrentSkipListMap?
- 11. Lo que se entiende por parámetros (capacidad inicial int) en un ArrayList
- 12. ¿Por qué no puedo establecer una variable global en Python?
- 13. No puedo establecer la imagen para UIBarButtonItem
- 14. ¿Cómo puedo establecer el valor inicial de dijit.form.DateTextBox a hoy?
- 15. ¿Cómo establecer la altura inicial de un 'panel' GridSplitter?
- 16. Python - Crear una lista con una capacidad inicial
- 17. ¿Cuál es la importancia de establecer la capacidad de `IList`?
- 18. ¿Por qué no puedo establecer un valor en un asp: CheckBox?
- 19. ¿Por qué no puedo multiplicar un flotador?
- 20. ¿Por qué no puedo dividir un datetime.timedelta por un flotante?
- 21. ¿Por qué no puedo verificar si un 'DateTime' es 'Nothing'?
- 22. valor inicial de empty_form para un modeloformset_factory
- 23. Establecer el enfoque inicial en una aplicación para Android
- 24. Rieles: capacidad para "recordarme"
- 25. ¿Por qué no puedo establecer cero como la primera clave en la matriz?
- 26. ¿Por qué no puedo establecer el color de fondo de un ListBoxItem seleccionado en WPF?
- 27. ¿Por qué no puedo establecer las propiedades de las variables de iteración en un ciclo foreach?
- 28. iphone SDK: ¿Cómo establecer el valor inicial de un UIPickerView?
- 29. ¿Por qué no puedo depurar?
- 30. Establecer valor inicial de la columna con incremento automático
@MarkoTopolnik Las estructuras de skiplist son nuevas para mí. Necesito una implementación de mapa ordenada y ese mapa tendrá que prosperar modificaciones simultáneas de varios hilos. Por lo que estaba buscando ConcurrentSkipListmap> he usado Cocurrenthashmap antes y usé la intialCapacity para que no ocurra ningún cambio. – Geek
@Geek - hora de leer un buen libro de estructuras de datos. –
@StephenC Reading Cormen et all, pero aún no se ha ido a SkipLists. Cubierto hasta rojo árboles negros. – Geek