Bei Verwendung einer HashMap Werte und Schlüssel garantiert in der gleichen Reihenfolge bei der Iteration?
Wenn ich die Iteration über die Werte oder Schlüssel, die Sie gehen, Sie zu korrelieren? Wird der zweite Schlüssel anzeigen, um den zweiten Wert?
InformationsquelleAutor der Frage Allain Lalonde | 2008-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, nicht unbedingt. Sie sollten wirklich die entrySet().iterator() für diesen Zweck. Mit diesem iterator, Sie werden Fuß durch alle Anzeigen.Eintrag von Objekten in der Karte und können den Zugriff auf die einzelnen Schlüssel und zugehörigen Wert.
InformationsquelleAutor der Antwort Alex Miller
verwenden, das entrySet, dass @Cuchullain erwähnt:
InformationsquelleAutor der Antwort Matt
Sie dies nutzen wollen, LinkedHashMapfür absehbare iteration um
InformationsquelleAutor der Antwort basszero
InformationsquelleAutor der Antwort Adam Al-Salman
Beide Werte() und keySet() delegieren, um die entrySet() iterator, so dass Sie in der gleichen Reihenfolge zurückgegeben. Aber wie Alex sagt, es ist viel besser, das entrySet() iterator direkt.
InformationsquelleAutor der Antwort
Ich Stimme mit pmac72. Nicht davon ausgehen, dass Sie erhalten die bestellten Werte oder Schlüssel, die aus einer ungeordneten Sammlung. Wenn es funktioniert Zeit zu Zeit ist es einfach nur pure Gefahr. Wenn Sie möchten, um zu erhalten, verwenden Sie eine LinkedHashMap oder eine TreeMap oder commons Sammlungen OrderedMap.
InformationsquelleAutor der Antwort
Die Frage verwirrte mich zuerst, aber @Matt es geklärt für mich.
Erwägen, mit dem entrySet () - Methode zurückgibt, legen Sie mit den Schlüssel-Wert-Paaren auf der Karte.
Dieser Ausgänge:
InformationsquelleAutor der Antwort Jorge Ferreira
Ich, die zweite @basszero. Während
funktioniert, finde ich die Verwendung einer Datenstruktur, die dies automatisch erledigt ist schöner. Jetzt können Sie nur Durchlaufen "normal"
InformationsquelleAutor der Antwort oreoshake
HashMap ist keySet-Methode gibt einen Satz, der garantiert nicht um.
HashMap die Werte () - Methode gibt eine Kollektion, die garantiert nicht um.
Sagte, die Frage war "sind Sie zu korrelieren", technisch gesehen, die Antwort ist vielleicht, aber nicht auf Sie verlassen.
InformationsquelleAutor der Antwort pmac72