Skip to content

Commit

Permalink
Add TT3.java
Browse files Browse the repository at this point in the history
  • Loading branch information
seanprashad committed Mar 31, 2021
1 parent 84d469e commit 8a27a6f
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions Miscellaneous/TT3.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import java.util.*;

interface Playlist {
Song getNextSong();

boolean hasNextSong();
}

class Song {
String name;

public Song(String name) {
this.name = name;
}
}

class CollaborativePlaylist implements Playlist {
private Deque<Playlist> dq;

public CollaborativePlaylist(List<Playlist> playlists) {
dq = new ArrayDeque<>();

for (Playlist p : playlists) {
dq.offer(p);
}
}

@Override
public Song getNextSong() {
while (!dq.isEmpty()) {
Playlist p = dq.pollFirst();

if (p.hasNextSong()) {
Song s = p.getNextSong();
dq.offerLast(p);
return s;
}
}

return null;
}

@Override
public boolean hasNextSong() {
return !dq.isEmpty();
}
}

0 comments on commit 8a27a6f

Please sign in to comment.