HashMap<String, boolean> kopieren Sie alle Schlüssel in die HashMap<String, Integer>und initialisieren Sie die Werte auf null
Was ist der beste Weg ?
Nur Durchlaufen und setzen Sie den Schlüssel und keine, oder gibt es eine andere elegantere oder bestehende Bibliothek-Methode. Ich bin auch über Google guava java-Bibliothek, ob dies eine nützliche Funktion ?
Wollte, um zu überprüfen, ob es etwas ähnlich wie die copy-Methode für die Listen-oder die Karte ist putAll Methode, aber nur für die Tasten.
Bitte formulieren Sie Ihre Frage, ich konnte es nicht verstehen.
Ich würde einfach in einer Schleife durch die Tasten, es braucht nur drei Zeilen code. Wenn Sie wollen, dass es kürzer könnten Sie schreiben eine Methode, es zu tun.
Beachten Sie, dass wenn Sie ein Multiset statt einer Karte, die Sie nicht haben, initialisieren Sie alle Tasten auf null. Das erste mal, wenn Sie fügen Sie eine beliebige Anzahl von vorkommen eines neuen Schlüssel initialisiert wird es für Sie.
Ich würde einfach in einer Schleife durch die Tasten, es braucht nur drei Zeilen code. Wenn Sie wollen, dass es kürzer könnten Sie schreiben eine Methode, es zu tun.
Beachten Sie, dass wenn Sie ein Multiset statt einer Karte, die Sie nicht haben, initialisieren Sie alle Tasten auf null. Das erste mal, wenn Sie fügen Sie eine beliebige Anzahl von vorkommen eines neuen Schlüssel initialisiert wird es für Sie.
InformationsquelleAutor NimChimpsky | 2010-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Glaube nicht, dass es viel Bedarf für etwas Phantasie hier:
Wenn Sie wollen, etwas ausgefallenes mit Guave, gibt es diese option:
InformationsquelleAutor ColinD
Looping ist ziemlich einfach (und nicht unelegant). Iteration über die Schlüssel des ursprünglichen
Map
und steckte es in Sie Sie in Sie die neue Kopie mit einem Wert von null.Hoffe, das hilft.
new Integer(0)
ist sehr verschwenderisch von den heap. Betrachten Sie mit 0, und lassen Sie den autoboxing funktioniert, oder wenn Sie verabscheuen autoboxing verwendenInteger.valueOf(0)
.Ich habe gerade versucht, geben eine einfache Antwort. Und autoboxing ist das gleiche wie new Integer(0), ist es nicht? Ja, Integer.valueOf(0) würde weniger Speicher verwenden.
NÖ, tut es
Integer.valueOf(0)
(mit Cache boxed Werte für zahlen zwischen -128 und 127).InformationsquelleAutor Todd
Nicht sicher, aber nicht Integer.valueOf(0) ausgewertet werden, für jeden " - Schleife ?
Ziemlich sicher, dass wäre zu vermeiden Boxen mit jeder iteration, die möglicherweise etwas besser in Bezug auf Leistung. Ich fühle mich nicht wie, es lohnt sich die reduzierte Klarheit wenn.
Ja, aber so? Es wird inline durch den JIT-compiler in den zwischengespeicherten Wert 0-zu jeder Zeit.
InformationsquelleAutor pgras