Warum erlaubt uns der ConcurrentSkipListMap Erbauer nicht, die initial capacity
wie HashMap zu setzen?Warum kann ich die Anfangskapazität für eine ConcurrentSkipListMap nicht festlegen?
5
A
Antwort
6
Da diese Datenstruktur von mehreren LinkedList unterstützt wird, für die ein anfänglicher Kapazitätskonstruktorparameter keine Bedeutung hat.
Die HashMap wird von einem Array (zusammenhängender Speicherplatz) unterstützt, für das es sinnvoll ist, eine Anfangskapazität festzulegen, da die HashMap eine neue Tabelle mit einer größeren Größe neu zuordnet, die sehr groß ist teuer.
+1
(Aber für HashMap ist die Flip-Side, dass es auch teuer ist, die Größe der Karte deutlich zu überschätzen ...) –
Verwandte Themen
- 1. Warum kann ich SelectedIndex nicht für eine datengebundene ComboBox festlegen?
- 2. Wann sollte ich ConcurrentSkipListMap verwenden?
- 3. Warum ist die Anfangskapazität in HashMap 16 (Zweierpotenz) und die Anfangskapazität von Hashtable 11 (Primzahl)?
- 4. Warum kann ich die Begrenzungsrechteckbreite eines UIImageVies nicht festlegen?
- 5. Warum ist das langsamer, wenn ArrayList eine Anfangskapazität erhält?
- 6. Kann die Fremdschlüsselbeziehung nicht festlegen
- 7. Kann ich die Umask für tempfile.NamedTemporaryFile in Python festlegen?
- 8. Wie kann ich die Textfarbe für die Android-Voreinstellung festlegen?
- 9. Kann ich die Timeout-Eigenschaft SoapHttpClientProtocol über eine Konfigurationsdatei festlegen?
- 10. Wie kann ich einen Standardwert für eine Perl-Variable festlegen?
- 11. Wie kann ich eine Tab-Breite für JSON-Dateien festlegen?
- 12. Kann ich ein benutzerdefiniertes Symbol für eine jQueryUI-Schaltfläche festlegen?
- 13. Wie kann ich die Standardseite für HTTPS-Anfragen festlegen?
- 14. Kann ich die Standardzeichenfolgencodierung für Ruby 1.9 festlegen?
- 15. Wie kann ich die Höhe für Twitter-Bootstrap-Thumbnails festlegen?
- 16. Kann ich beliebige Attribute für die Datei in iOS festlegen?
- 17. Kann ich Spaltenattribute für eine kdb-partitionierte Tabelle festlegen?
- 18. Wie kann ich einen Kurznamen für eine Variable festlegen?
- 19. Kann ich FLAG_LAYOUT_NO_LIMITS nur für die Statusleiste festlegen?
- 20. Kann ich die Zeitzone für Berichte in Amazon Cloudwatch festlegen?
- 21. Wie kann ich den Titel für eine UINavigationsleiste programmgesteuert festlegen?
- 22. Warum kann ich die Breite meines Knopfes nicht verkleinern?
- 23. Kann ich die Zeitüberschreitung für UdpClient in C# festlegen?
- 24. Wo kann ich die ES6-Option für jshint festlegen?
- 25. Wie kann ich die .mdf-Datenbankverbindungszeichenfolge für alle Benutzer festlegen?
- 26. Warum kann ich String.Replace() für eine IO.File.ReadAllText() Zeichenfolge nicht tun?
- 27. kann die Sichtbarkeit von ScrollView nicht festlegen
- 28. Warum kann ich die innerHTML-Eigenschaft nicht für Variablen verwenden?
- 29. Warum kann ich die Standardvalidierungsfehlermeldung nicht überschreiben?
- 30. Warum müssen Sie die Umgebungsvariable WORKON_HOME festlegen?
@MarkoTopolnik skiplist Datenstrukturen sind neu für mich. Ich benötige eine sortierte Kartenimplementierung und diese Karte muss gleichzeitige Änderungen von mehreren threads gedeihen.Daher suchte ich nach ConcurrentSkipListmap> ich habe vorher Cocurrenthashmap verwendet und die intialCapacity verwendet, so dass das erneute hashing nie passiert. – Geek
@Geek - Zeit, ein gutes Datenstrukturbuch zu lesen. –
@StephenC Lesen Cormen und alle, aber noch nicht zu SkipLists gegangen. Bedeckte uptill rote schwarze Bäume. – Geek