如果任何歌曲包含对播放列表中上一首歌曲的引用,则该播放列表被视为重复播放列表。否则,播放列表将以指向空的最后一首歌曲结束。
我需要实现一个函数 isRepeatingPlaylist,如果播放列表重复,则返回 true,否则返回 false。
例如,以下代码打印“true”,因为两首歌曲都指向对方。
Song first = new Song("Hello");
Song second = new Song("Eye of the tiger");
first.setNextSong(second);
second.setNextSong(first);
System.out.println(first.isRepeatingPlaylist());
Run Code Online (Sandbox Code Playgroud)
再说一遍,这不是作业练习,我在做编码挑战,因为当我阅读有关编程概念的理论时,我几乎可以理解,但是当面临编写程序时,我不知道从哪里开始,也不知道如何应用。
public class Song {
private String name;
private Song nextSong;
public Song(String name) {
this.name = name;
}
public void setNextSong(Song nextSong) {
this.nextSong = nextSong;
}
public boolean isRepeatingPlaylist() {
//throw new UnsupportedOperationException("Waiting to be implemented.");
List<String> list = new ArrayList<String>();
list.add(one);
list.add(two);
list.add(three);
list.add(four);
if list.contains()
return true;
else
return false;
}
public static void …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过一些编码挑战来学习Java。通过阅读理论,我可以有点理解这些概念,但是由于某种原因,它们无法将其应用于编码问题。
我已经编写了一个接口,现在需要在AlertService类中编写一个接受该接口(AlertDAO)的构造函数。我不太了解这个概念。
谁能解释?
我已经添加了接口并添加了构造函数,但不确定如何使该构造函数接受新接口?希望我有道理。
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
class AlertService {
private final MapAlertDAO storage = new MapAlertDAO();
public UUID raiseAlert() {
return this.storage.addAlert(new Date());
}
public Date getAlertTime(UUID id) {
return this.storage.getAlert(id);
}
}
interface AlertDAO {
public UUID addAlert(Date time);
public Date getAlert(UUID id);
}
class MapAlertDAO implements AlertDAO {
private final Map<UUID, Date> alerts = new HashMap<UUID, Date>();
public UUID addAlert(Date time) {
UUID id = UUID.randomUUID();
this.alerts.put(id, time);
return id;
}
public …Run Code Online (Sandbox Code Playgroud)