[QUOTE=SlaterB]was gibt es zu so ausführlichen Code noch groß zu sagen?
schaffe dir eine reproduzierbare Lage, prüfe also immer dasselbe Beispiel,
suche dir genau ein Problem heraus,
“Problem: In Liste B werden Elemente reinkopiert obwohl die schon vorhanden sind, d.h. ich habe mehrere gleiche Elemente in Liste B…”
heißt also, dass ein konkretes Element Xy übernommen wird obwohl in der Zielliste B schon drin,
jetzt beobachte Xy, was genau passiert in
if ((this.werteListe.getList().getItem(y).contains(this.ausgewaehlteElemente.get(x).getBenennung())))
für dieses Element, logge allgemein oder speziell wenn Xy drankommt das boolean-Ergebnis von contains, gegebenfalls die Parameter usw.,
gehe dem Problem auf den Grund!
was liefert getItem(y) für einen Datentyp zurück,
was enthält dieses Objekt, falls wieder eine Liste,
wirklich Strings so dass contains() funktionieren kann?
oder meinst du vielleicht, dass Xy in B nicht drin sondern 2x in C und dann 2x übernommen wird obwohl es nur einmal rein soll?
da du B=ausgewaehlteElemente unter Kontrolle hast, könntest du das für sich zu einem Set machen, dann Doppelte weg[/QUOTE]
Erstmal vielen Dank an euch.
Die Überprüfung
if ((this.werteListe.getList().getItem(y).contains(this.ausgewaehlteElemente.get(x).getBenennung())))
prüft ob zwei Strings gleich sind bzw. ob werteListe ein Element aus ausgewaehlteElemente beinhaltet. Das funktioniert alles soweit.
Das Problem liegt in der zweiten for-Schleife bzw. beim remove.
&& this.ausgewaehlteElemente.size() > x
this.ausgewaehlteElemente.remove(x);
Wenn ein ausgewähltes Element in der werteListe auftaucht, wird es aus der ausgewaehlteElemente-Liste gelöscht und die dahinterliegenden Element aus der ausgewaehlteElemente-Liste rücken auf. Die for-Schleife wird beendet, obwohl es noch ein Element nachprüfen müsste. Das Problem habe ich jetzt festgestellt.
Jetzt muss ich mal überlegen wie ich das korrigieren muss…