Hallo,
ich soll für die Uni eine Aufgabe programmieren und komme bei einer Methode ins Stocken.
Methode:
MusicDataStore enthält nur zwei ArrayList oList und cList.
Die Methode soll die Elemente aus der that-Liste, die nicht in der this-Liste sind einfügen. Heißt quasi keine doppelten Elemente.
Deswegen auch der Ansatz mit HashSet.
Meine Idee: Erst mal alle Elemente in die Liste hinzufügen, dann in HashSet konvertieren, den Listeninhalt löschen und das HashSet in die Liste "laden".
Lasse ich meine Main ohne diese Methode laufen funktioniert alles, nur wenn ich die Methode einbaue endet es nie. Dauerschleife.
Wo liegt der Fehler? Kann ja nur in den beiden Schleifen liegen oder?
ich soll für die Uni eine Aufgabe programmieren und komme bei einer Methode ins Stocken.
Methode:
Java:
MusicDataStore merge(MusicDataStore that) {
for(int i = 0; i < that.oList.size(); i++) {
this.oList.add(that.oList.get(i));
}
for(int i = 0; i < that.cList.size(); i++) {
this.cList.add(that.cList.get(i));
}
HashSet<Opus> setO = new HashSet<>(oList);
HashSet<Composer> setC = new HashSet<>(cList);
oList.clear();
oList.addAll(setO);
cList.clear();
cList.addAll(setC);
return this;
}
Die Methode soll die Elemente aus der that-Liste, die nicht in der this-Liste sind einfügen. Heißt quasi keine doppelten Elemente.
Deswegen auch der Ansatz mit HashSet.
Meine Idee: Erst mal alle Elemente in die Liste hinzufügen, dann in HashSet konvertieren, den Listeninhalt löschen und das HashSet in die Liste "laden".
Lasse ich meine Main ohne diese Methode laufen funktioniert alles, nur wenn ich die Methode einbaue endet es nie. Dauerschleife.
Wo liegt der Fehler? Kann ja nur in den beiden Schleifen liegen oder?