Hashmap Iterieren

Vendetta

Mitglied
Hallo,
ich habe ein Problem. Unzwar habe ich eine eigene Klasse welche sich um ankommende Json packete kümmert und diese dann in einer Hashmap abspeichert. jetzt möchte ich eine klasse angelegen, die auf das datenmodel zugreift und über alle elemente aus dieser Hashmap iterieren. kann mir jemand sagen wie man aus einer anderen klasse auf eine hashmap zugreift? kleines beispiel oder so?

wäre echt dankbar wenn diese frage schnell beantwortet werden könnte.😉


gruß,


vendetta :bahnhof:
 
naja du musst der zweiten klasse einfach das objekt der ersten klasse übergeben

Java:
class Foo {
    private Map<String, String> hm = new HashMap<String, String>();

    public Map<String, String> getHm() {
        return this.hm;
    }
}
Java:
class Bar {
    private Foo foo;
    public Bar(Foo foo) {
        this.foo = foo;
    }

    public void doIt() {
        Map<String, String> hm = foo.getHm();
        Set<String> keys = hm.keySet();
        for (String value : keys) {
            System.out.println("key: " + value + " value" + hm.get(value));
        }

        // edit: oder wie EikeB sagt, gleich über entries, je nachdem was du vor hast
        Set<Entry<String, String>> entries = hm.entrySet();
        for (Entry<String, String> entry : entries) {
            System.out.println("key: " + entry.getKey() + " value" + entry.getValue());
        }
    }
}
Java:
public final class Test {

    public static void main(String[] args) {
        Foo foo = new Foo();
        Bar bar = new Bar(foo);
        bar.doIt();
    }
}
alternativ könnte man foo auch mit einer/der Methode statt dem Konstruktor an Bar übergeben.
 
Zuletzt bearbeitet von einem Moderator:
Stattt dem keySet() und den anschließenden get() in der Schleife würde ich direkt über das entrySet() iterieren. Da bekommst du direkt das Key-Value Paar.
 
Huch ihr seit ja schnell 🙂 Ich post auch mal ne Lösung. Übergabe an Klassen etc, siehe obige Posts🙂

Java:
     Map<Integer, String> test = new HashMap<Integer, String>();
      test.put(1, "Eins");
      test.put(2, "Zwei");
      test.put(3, "Drei");
      test.put(4, "Vier");
      test.put(5, "Fünf");
      
      //Iterieren durch die Map anhand Key
      Set<Integer> keys = test.keySet();
      for(int i:keys){
         System.out.println(test.get(i));
      }
 

Neue Themen


Zurück
Oben