Wieso ständig? Du brauchst das nur ein einer einzelnen Stelle, da wo die Liste ausgegeben wird.
Für alle anderen Methoden ist die Reihenfolge egal.
Ich hab trotzdem keine Ahnung wie ich dann durch die Elemente iterieren soll oder sollte ich das dann mit dem Iterator wie ganz am Anfang machen ? Stand jetzt habe ich zum Beispiel für add das :
Code:
public void addSong(Song song) {
ArrayList<Song> newQueue = new ArrayList<Song>();
if (newQueue.size() == 0) {
newQueue.add(song);
} else {
for (int i = 0; i < newQueue.size(); i++) {
// equals methode ist überschrieben
if (newQueue.get(i).equals(song) || newQueue.get(i).getId() != song.getId()) {
newQueue.add(song);
}
}
}
for (int i = 0; i < newQueue.size(); i++) {
queue.add(newQueue.get(i));
}
}
Ist das so nicht gut ?
Also ist Resttime dann ein Attribut in der PQ Klasse und nicht der Song Klasse ? Wie würdest du das dann umsetzenPlay ist dafür doch völlig egal?
die Restzeit brauchst du nicht im Song speichern - es hat ja nicht jeder einzelne Song eine Restzeit, sondern nur der aktuelle. Kann je nach Umsetzung einfacher sein.
Im Kopf ist mir das ja schon klar, wie das auszusehen hat, aber hab schon einige Sachen versucht. Aber ich schätze mal ich sollte dafür Hilfsmethoden verwenden und nicht alle Überprüfungen in eine methode klatschen ?Wenn mehr Zeit gespielt werden soll, als in aktuellem Lied übrig (kannst du prüfen), dann musst du berechnen, wie viel Zeit nach dem aktuellen Lied noch gespielt werden musst, das nächste Lied aus der Liste holen, und die Zeit davon abziehen.
Einfach mal auf Papier durchspielen.
Na gut, Play ist nicht am einfachsten![]()