Mit dem keySet () - Methode in HashMap
Habe ich eine Methode, die geht durch die möglichen Zustände in einem board, und speichert Sie in eine HashMap
void up(String str){
int a = str.indexOf("0");
if(a>2){
String s = str.substring(0,a-3)+"0"+str.substring(a-2,a)+str.charAt(a-3)+str.substring(a+1);
add(s,map.get(str)+1);
if(s.equals("123456780")) {
System.out.println("The solution is on the level "+map.get(s)+" of the tree");
//If I get here, I need to know the keys on the map
//How can I store them and Iterate through them using
//map.keySet()?
}
}
}
Ich bin interessiert in der Gruppe von Tasten. Was sollte ich tun, um drucken Sie alle?
HashSet t = map.keySet()
abgelehnt wird vom compiler sowie
LinkedHashSet t = map.keySet()
InformationsquelleAutor andandandand | 2009-12-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden:
Immer versuchen, die Schnittstelle anzugeben, geben Sie für die Sammlungen zurückgegeben werden, die durch diese Methoden. Diese Weise, unabhängig von der tatsächlichen Implementierung der Klasse Set zurückgegeben durch diese Methoden (in deinem Fall anzeigen.keySet()) Sie wäre ok. Auf diese Weise, wenn die nächste Version des jdk Jungs eine andere Implementierung verwenden für die Rücksendung beigelegt wird sich der code immer noch funktioniert.
Karte.keySet() liefert eine Sicht auf die Keys von der Karte. Änderungen in dieser Ansicht werden die Ergebnisse in eine änderung der zugrunde liegenden Karte, obwohl diese änderungen sind begrenzt. Finden Sie in der javadoc für die Karte:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#keySet%28%29
InformationsquelleAutor Yousuf Haider
Dies ist, wie ich mag zu Durchlaufen Karten. Wenn Sie möchten gezielt nur die keySet () die Antwort darauf ist an anderer Stelle auf dieser Seite.
InformationsquelleAutor Droo
InformationsquelleAutor lemon
Menge t = map.ketSet()
Die API nicht angeben, welche Art von Set zurückgegeben wird.
Sollten Sie versuchen, um Variablen zu deklarieren, da die Schnittstelle als eine bestimmte Umsetzung.
InformationsquelleAutor TofuBeer
Nur
InformationsquelleAutor bmargulies
Es sei denn, dass Sie eine ältere JDK, ich denke, es ist ein wenig cleaner zu verwenden, Generika bei der Verwendung der Collections-Klassen.
Also das ist
Und dann, wenn Sie gerade Durchlaufen, dann können Sie mit jeder Art von Schleife, die Sie wünschen. Aber wenn du gehst, werden ändern die Karte basiert auf diesem keySet, Sie müssen Sie das keySet-iterator.
InformationsquelleAutor goatlinks
Alle, die garantiert aus
keySet()
ist etwas, das die Schnittstelle implementiertSet
. Und das könnte eventuell einige undokumentierte Klasse wieSecretHashSetKeys$foo
werden, so dass nur das Programm, um die SchnittstelleSet
.Ich lief in dieses zu versuchen einen Blick auf einen
TreeSet
, der return-Typ endete alsTreeSet$3
auf eine enge Prüfung.InformationsquelleAutor Matt Stephenson
Bringt es die key-Werte in der map in die Reihe.
InformationsquelleAutor jaemin
Aus Javadocs
HashMap
hat mehrere Methoden, die verwendet werden können, zu manipulieren und extrahieren von Daten aus einer hasmap.public Set<K> keySet()
Gibt eine Menge zurück, Blick auf die enthaltenen Schlüssel sind in dieser Karte. Das set wird unterstützt durch die Karte, so dass änderungen an der Karte sind, spiegelt sich in der Menge, und Umgekehrt. Wenn die Karte geändert wird, während eine iteration über die Menge im Gange ist (außer durch die iterator-eigene entfernen-operation), die Ergebnisse der iteration nicht definiert sind. Das set unterstützt element entfernen, entfernt die entsprechende Zuordnung ist aus der Karte, die über den Iterator.entfernen, Setzen.remove, removeAll, retainAll und klar Operationen. Es unterstützt nicht das hinzufügen oder addAll Operationen.
Angegeben:
keySet-in-Schnittstelle Anzeigen
Überschreibt:
keySet in der Klasse AbstractMap
Gibt:
eine Reihe Blick auf die enthaltenen Schlüssel sind in dieser Karte
wenn du also eine map myMap jeder Datentyp , so dass die Karte definiert als
map<T>
, wenn Sie die Iteration wie folgt:e.g wenn die Karte wurde definiert als
Map<Integer,Boolean>
Dann für das obige Beispiel werden wir haben:
InformationsquelleAutor Amos Kosgei