Ich programmiere in Java, aber ich könnte auch C++ (oder sogar Pseudo) Code übernehmen, kein Problem. Hier ist, was ich bin:Playlist Shuffle ein/aus
Ich habe so etwas wie eine Playlist wie List<MyPlayListItem> lsMyPlaylist
. Jetzt möchte ich dem Benutzer die Möglichkeit geben, die Elemente zu mischen, aber dann auch wieder in die geordnete Liste zu kommen. Ich meine, sagen wir, der Benutzer ist im "Shuffle-Modus", der Spieler z.B. springt von Song 7 zu 5, aber dann schaltet der Benutzer den "Shuffle-Modus" aus, weil er Song 6 als nächstes hören möchte. Wie würden Sie dieses Problem angehen?
Ich habe einige Ideen:
- zwei Listen zu verwenden, ein Original, ein gemischt (zu viel Speicher)
- haben eine Liste von int ist, die ich mischen und dann als Index verwenden, um die Elemente zu erhalten (ein wenig besser, vielleicht)
- verwenden, um eine Hash-Tabelle (die Lösung? ich, dass einige Hinweise brauchen könnte, obwohl)
Oh, und dies ist keine Hausaufgabe (ich wünsche, ich, dass das Alter war wieder :-D).
EDIT:
Ich habe gerade eine Implementierung wie folgt aus:
PlayList<E> implements List {
private List<E> lsObjs = null;
private List<Integer> lsIdxs = null;
boolean bShuffleMode = false;
int Pos = 0;
}
aber jetzt, ich denke an so etwas wie:
PlayListItem<E> {
int iNextItem = 0;
}
PlayList<PlayListItem> implements List {
private List<PlayListItem> lsObjs = null;
boolean bShuffleMode = false;
int Pos = 0;
}
Nicht sicher dieses ... Könnte immer noch einen Rat brauchen. Kann ich List auch implementieren, wenn ich die Objekte in der Liste spezifiziere? Hm ...
+1 für "Ich wünschte, ich wäre wieder in diesem Alter". Tun wir nicht alle! –