Matching von Java Map

Diskutiere Matching von Java Map im Java Basics - Anfänger-Themen Bereich.
S

Sweetmuffin98

Hey zusammen!
In meinem neusten Projekt matche ich zwei Maps anhand eines Keys (Map1) und einem Value (Map2).
Haben diese die gleiche Nummer werden die Values aus beiden Maps zusammen in eine Zeile einer csv-Datei geschrieben.
Soweit so gut.
Nun hat aber nicht jeder Value (Map2) einen dazugehörigen Key(Map1).
Trotzdem möchte ich, dass die Values der 2. Map in die csv eingetragen werden auch wenn diese keinen match hat, dann ohne die Einträge aus Map1.
Ich hab leider keine Ahnung wie ich das anstellen soll.
Weiß jemand wie ich meine Abfrage so manipulieren kann, dass die Values (Map2) trotzdem eingetragen werden, wenn es keinen Match mit einem Key aus Map1 hat? Unten der kommentierte Code.
Code:
        //Nimm den Key aus der 1. Map
        for (Map.Entry<String, KlasseEins> e : maps.entrySet()) {
            String s = e.getKey();
            //Hole die Einträge aus der 2. Map
            for (Map.Entry<String, KlasseZwei> l : map.entrySet()) {
                //Vergleiche den Value (Nummer) ob es mit dem Key aus der 1. Map übereinstimmt
                if (l.getValue().getNummer().equals(s)) {
                    //Schreibe in die csv Datei...
                }
            }
          
            }
 
Zuletzt bearbeitet:
mihe7

mihe7

Dreh die Schleifen um, dann kannst Du auch die get-Methode der Map verwenden (= speeeed) und entscheiden, was passiert. Du kannst auch noch eine Klasse verwenden, um den CSV-Eintrag zu erzeugen.

Pseudo-Code:
Java:
for (Map.Entry<String, KlasseZwei> pflichtEintrag : map.entrySet()) {   
    KlasseZwei pflichtTeil = pflichtEintrag.getValue();
    String key = pflichtTeil.getNummer();
    KlasseEins optionalerTeil = maps.get(key);
    String csv = createCsvRecord(pflichtTeil, optionalerTeil);
}

// die Methode
private String createCsvRecord(KlasseZwei pflicht, KlasseEins optional) {
    StringJoiner j = new StringJoiner(",");
    j.add(pflicht.getNummer());
//    j.add(plicht....)
   if (optional != null) {
       optional.add(optional.getSomething());
   }
   return j.toString();
}
 
Thema: 

Matching von Java Map

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben