Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- open class Playlist(val songliste: MutableList<Song>) {
- open fun gesamteSpieldauer() = songliste.sumBy { it.spieldauer }
- fun SpieldauerMitXOderBesser(x: Int): Int {
- var tmp: Int = 0
- for (s in songliste) {
- if(s.bewertung >= x){
- tmp += 1
- }
- }
- return tmp
- }
- open fun alleAbspielen() {
- for (s in songliste) {
- s.abspielen()
- }
- }
- }
- class DynamicPlaylist (songlisteParam: MutableList<Song>): Playlist(songlisteParam){
- class SongNode(val song : Song, var nextSong : SongNode?)
- private var first: SongNode? = null
- private var last: SongNode? = null
- init {
- reset();
- /*first = SongNode(songliste.get(0), null)
- var runPointer = first
- for( i in 1..songliste.size){
- runPointer?.nextSong = SongNode(songliste.get(i), null)
- runPointer = runPointer?.nextSong ?: runPointer
- }
- last = runPointer*/
- }
- fun add(derSongTM : Song){
- last?.nextSong = SongNode(derSongTM, null)
- last = last?.nextSong
- }
- fun take() : Song?{
- var tmp = first
- first = first?.nextSong
- return tmp?.song
- }
- fun take2(searchSong : Song){
- var test : Boolean = false
- var runTest = first
- while(runTest != null){
- if(runTest.song == searchSong)
- test = true
- runTest = runTest.nextSong
- }
- if(test){
- if(first?.song == searchSong)
- first = first?.nextSong
- else{
- var runPointer = first
- while(runPointer?.nextSong?.song != searchSong){
- runPointer = runPointer?.nextSong
- }
- if(runPointer.nextSong == last){
- last = runPointer
- last?.nextSong = null
- }
- else
- runPointer.nextSong = runPointer.nextSong?.nextSong
- }
- }
- else
- println("Der zu löschende Song ist nicht vorhanden!")
- }
- fun reset(){
- first = SongNode(songliste.get(0), null)
- var runPointer = first
- for( i in 1..songliste.size-1){
- runPointer?.nextSong = SongNode(songliste.get(i), null)
- runPointer = runPointer?.nextSong ?: runPointer
- }
- last = runPointer
- }
- override fun gesamteSpieldauer() : Int{
- var runPointer = first
- var tmp : Int = 0
- while (runPointer != null){
- tmp += runPointer.song.spieldauer
- runPointer = runPointer.nextSong
- }
- return tmp
- }
- override fun alleAbspielen() {
- var runPointer = first
- while (runPointer != null){
- runPointer.song.abspielen()
- runPointer = runPointer.nextSong
- }
- }
- }
Advertisement