Foreach-Schleife in java für Wörterbuch
Will ich gehen Sie durch alle Elemente in einem dictionary in java. um zu klären, was ich tun will, dies ist die C# - code
Dictionary<string, Label> LableList = new Dictionary<string, Label>();
foreach (KeyValuePair<string, Label> z in LabelList);
Ich weiß nicht, wie dies zu tun ist java zum Beispiel habe ich dieses
for(Object z: dic)
aber es sagt, es ist nicht durchsuchbar. Bitte beraten......
InformationsquelleAutor Daniel | 2012-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, Sie haben eine
Map<String, Label>
was ist der Java-built-in dictionary-Struktur. Java lässt Sie nicht Durchlaufen direkt über denMap
(d.h. es nicht umsetzenIterable
), da würde es unklar sein, was man eigentlich Durchlaufen.Es ist nur eine Frage der Wahl zu iterieren über die Schlüssel, Werte oder Eingaben (beide).
z.B.
Ihrem C# - code scheint das gleiche zu sein wie zu iterieren über die Einträge (letztes Beispiel).
Das Lesen der javadoc würde sagen, Sie
NOTE: This class is obsolete. New implementations should implement the Map interface, rather than extending this class.
sind, so sollten Sie mit einem der neuen map-Klassen. Sie wahrscheinlich wollen eineHashMap
- das implementiert auch die neuen Funktionen, die Sie benötigen für iterierbar zu arbeitenErstaunlich, ich hatte längst vergessen, dass Hashtable hatte ein Wörterbuch Superklasse.
Ja, ich musste es nachschlagen so gut, mein Erster Instinkt war, "Warten Sie Java noch nicht einmal ein Wörterbuch, was zum Teufel machst du?". Wörterbuch abgelöst wurde in 1.2 (nur um zu zeigen, wie alt das ist: 1.2 war die erste version, wo der Sun JVM enthalten eine JIT -)
InformationsquelleAutor Mark Peters
java.util.Map
ist das Wörterbuch equvivalent und unten ist ein Beispiel, wie Sie können Durchlaufen und jeder EintragInformationsquelleAutor Aravind R. Yarram
Ihre beste Wette ist zu verwenden:
In Java jedoch eine bessere Wette ist, um nicht aus dem Lexikon, als würden Sie in .Aber NET für die Verwendung einer der Anzeigen Unterklassen, z.B. HashMap. Sie iterieren über eine diese wie diese:
Sind Sie auch, von denen abgeraten wird Verwendung Wörterbuch in der offiziellen javadoc.
Sag das mal meinem funktionierenden code 🙂
Also entweder mein Eclipse compiler ist kaputt (zeigt und Fehler), oder wir reden nicht über die gleiche Sache. (Nicht, dass Wörterbuch Angelegenheiten, die in irgendeiner Weise)
was ist deine Java-version?
Java 1.6.0_45, mit Standard-compliance-Ebene. Vielleicht haben Sie gemeint .keySet() statt .keys()? .keySet ist nur umgesetzt werden, wenn die Sammlung auch implementiert-Karte (das Wörterbuch nicht, aber zB. Eigenschaften hat).
InformationsquelleAutor Fritz H
Ich habe versucht, fügen Sie den Inhalt einer HashMap (a) in ein anderes HashMap (b).
Fand ich es einfach Durchlaufen HashMap ein auf diese Weise:
Sie manipulieren können, meinem Beispiel zu tun, was immer Sie wollen, auf der anderen Seite "->".
Beachten Sie, dass dies ist ein Lambda-Ausdruck, und dass Sie verwenden würde Java 1.8 (Java 8) oder höher für diese zu arbeiten. 🙂
InformationsquelleAutor Peter Clausen