Java Collections Set

JavatarAang

Mitglied
Hallo zusammen,

ich bin grad dabei mich mit Colletions zu beschäftigen.
Mein Code gibt mir so nur die Duplicates aus.
Vertausche ich die Bedienungen, wird mir alles ausgegeben.
Jedoch würde ich gerne wissen wieso mein Code so nur die Duplicates auspuckt.


Java:
       Set<String> s = new HashSet<String>();
       for (String a : args) {
         
           if(s.add(a) == false) {
               System.out.println("Duplicate: " + a);
           }
         
           else if(s.add(a) == true) {
               System.out.println("Unicate: " + a);
           }
       }
   } 
}
 
Zuletzt bearbeitet von einem Moderator:

JavatarAang

Mitglied
wenn es kein Duplicate ist sollte er doch in else .. dort befindet sich noch ein if.. wenn die bedienung stimmt, wenn man "a" zu "s" hinzufügen kann soll er mir das als unicate ausgeben ... :( BIN VERWIRRT :S
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn es ein neues Element ist, fügt das erste add es hinzu und gibt true zurück.
Damit geht er zum zweiten if, versucht erneut das Element hinzuzufügen, was fehlschlägt, da es ja direkt vorher schon hinzugefügt wurden.


Warum willst du im else-if die Bedingung überhaupt erneut prüfen? Bei einem Wert, der true oder false ist, sind ja nur die beiden Möglichkeiten möglich, eine dritte gibts ja nicht.

Außerdem ist es unüblich, booleans mit true ode false zu vergleichen - sie sind ja schon true oder false.
 

Neue Themen


Oben