Wie fetch first 10 Schlüssel-Wert-Paare in die HashMap
Ich versuche zu iterieren, wird nur das erste "n" - Werte, die in meiner Karte, gibt es eine Methode oder muss ich es kontrollieren, nur mit einem count-variable.
Unten ist ein Beispiel, ich habe sortiert eine Gruppe von Namen gehören der gleichen Stadt. Jetzt möchte ich nur die ersten 10 Stadt-und der Personennamen.
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
List<String> list = entry.getValue();
//Display list of people in City
}
Gibt es einen Map-Implementierung, die halten Feste Anzahl von Schlüssel-Wert-Paare?
Bitte Holen Sie einige Richtungen.
Dank,
-Vijay Selvaraj
Wollen Sie verhindern, dass das hinzufügen von mehr als 10 Einträge, oder willst du alle 10 Einträge, oder möchten Sie die 10 ersten Einträge Hinzugefügt? Mehr details.
Mein Ziel ist es 10 Einträge. Jetzt mache ich es voll und dann nehmen eine Teilmenge des ganzen. Aber ich kann mir sehr gut aufhören, wenn ich erreichen, 10 Einträge.
Mein Ziel ist es 10 Einträge. Jetzt mache ich es voll und dann nehmen eine Teilmenge des ganzen. Aber ich kann mir sehr gut aufhören, wenn ich erreichen, 10 Einträge.
InformationsquelleAutor Vijay Selvaraj | 2012-03-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
HashMap
ist nicht geordnet. Dies macht die Frage falsch gestellt (es sei denn, durch die "erste" du meinst, "beliebig").Wenn Sie möchten, dass eine einheitliche Bestellung von Schlüsseln, müssen Sie ändern Sie den Typ Ihrer Karte, um eine
SortedMap
, wieTreeMap
.Alternativ, wenn es die ältesten Elemente sind Sie nach (also die, die Sie haben zuerst eingefügt), dann
LinkedHashMap
ist die Antwort.Wie eigentlich immer die ersten
n
Elemente, eine Schleife mit einem Zähler ist ein ziemlich angemessener Weg, es zu tun.InformationsquelleAutor NPE
Die nächste Sache, die Sie finden nur mit der standard-Collections-API (was immer noch etwas schlechter als eine counter-variable IMO), ist die folgende:
Den langen Typ-Parameter können vermieden werden, entweder durch die Verwendung der fancy-Diamant von Java 7:
oder mit der Iteration über die Schlüssel und
.get
die entsprechenden Werte.Es kam von der
ArrayList
wurde-konstruiert, die mit dem Inhaltmap.entrySet()
.Karte.entrySet() liefert ein set, nicht eine arraylist
Recht. Und die
new ArrayList<...>(...)
schafft dieArrayList
auf diesubList()
wird dann aufgerufen.Ich gehe über die
ArrayList(Collection<? extends E> c)
Konstruktor. Geklärt code in die Antwort leicht.InformationsquelleAutor aioobe
InformationsquelleAutor Churk