HashMap-Value | Array

mors

Neues Mitglied
Hallo alle zusammen!

Irgendwie glaube ich, dass ich mich zu blöd dafür anstelle aber folgendes Problem:

ich habe mehrere Klassen, die ich wiederrum ineinander je Klasse an die übergeordnete Klasse als HashMap weitergeben möchte. Die Weitergabe is kein Problem, jedoch das auslesen der HashMap.

MainHash = Jene Hashmap die dann zum Arbeiten verwendet werden soll.
a ist ein String und eben auch der Key von der HM.
b ist eine weitere HashMap (im Prinzip bezogen auf die LAN-Ports mit (Bezeichnung und IP (IP ist hier dann wiederrum der Key)).

MainHash(a,b[])
b(a1,b2)


Wenn ich das richtig verstanden habe kann ich ja beliebig viele a's und b[]'s hinzufügen?!

Das auslesen von a geht Problemlos, wie folgt:

Java:
        HashMap <String,Port[]> compi=c.getMapsComputer();
        
        Iterator i = compi.entrySet().iterator();
        while(i.hasNext()){
            Map.Entry entry=(Map.Entry)i.next();
            System.out.println("COMPUTER NAMES: "+(String)entry.getKey());
//         System.out.println("COMPUTER PORTS: "+ (Array)entry.getValue());

Jedoch kann ich b nicht ausgeben. wenn ich die letzte Code-Zeile für getKey, getValue eingebe, gibt es einen Fehler, dass ich nicht auf einen reflected Array casten kann. Jedoch habe ich von Netbeans unter anderem die Möglichkeiten mich für eine java.sql.array oder einem "com.sun.xml..." Klasse zu entscheiden
 
Zuletzt bearbeitet:
Wie wäre es mit Generics?

Java:
HashMap <String,Port[]> compi=c.getMapsComputer();
        
for(Map.Entry<String, Port[]> entry : compi.entrySet()) {
    System.out.println("COMPUTER NAMES: "+ entry.getKey());
    System.out.println("COMPUTER PORTS: "+ java.util.Arrays.toString(entry.getValue()));
}
 
Danke für die Antwort angesichts dieser Uhrzeit 🙂

So weit war ich auch, nur wie lese ich diese ( [topology.Port@190d11] ) Dinger aus? :S
Wenn ich eine Methode generieren lasse:

Java:
    void setPort(String toString) {
        throw new UnsupportedOperationException("Not yet implemented"); }

Dachte mir ich bearbeite (in dem Fall einfach mal ausgeben), den String.
Erhält er hier den kompletten Array oder EIN Index von einem Array? Denn ein
Java:
System.out.println(toString);
gibt nur nur ein unreachable statement als Warnung wieder (rot unterwellt). Einziges in diesem Zusammenhang konnte ich nur Fehlerausgaben nach dem kompilieren finden. Da war der Fehler immer eine falsche For-Schleife.
 
Port scheint keine ordentliche toString-Methode zu haben. Hast du Zugriff auf den Quellcode von Port, kannst du es dort korrigieren. Wenn nicht, hast du Pech und Port wird sich nie einfach so mit println etc ausgeben lassen. Du kannst dann nur sowas machen:
Java:
public static String toString(Port p) {
   return p.name() + "," + p.id(); //oder was auch immer drin steht
}

...

for(Port p : portArray) {
  System.out.println(toString(p));
}
 

Zurück
Oben