【发布时间】:2011-01-14 16:04:59
【问题描述】:
我正在用java编程,但我也可以采用C++(甚至伪)代码,没问题。这是我现在的情况:
我有一个类似播放列表的东西,例如List<MyPlayListItem> lsMyPlaylist。现在我想让用户有机会洗牌,然后再回到有序列表。我的意思是,假设用户处于“随机播放模式”,播放器例如从第 7 首歌曲跳到第 5 首歌曲,但随后用户关闭了“随机播放模式”,因为他接下来想听第 6 首歌曲。您将如何解决这个问题?
我有几个想法:
- 使用两个列表,一个是原始的,一个是随机的(存储太多)
- 有一个 int 列表,我会对其进行洗牌,然后用作索引来获取元素(可能会更好一点)
- 使用哈希表(解决方案?不过,我可能需要一些建议)
哦,这不是家庭作业(我希望我再次回到那个年龄:-D)。
编辑:
我刚刚完成了一个这样的实现:
PlayList<E> implements List {
private List<E> lsObjs = null;
private List<Integer> lsIdxs = null;
boolean bShuffleMode = false;
int Pos = 0;
}
但是现在,我正在考虑类似的事情:
PlayListItem<E> {
int iNextItem = 0;
}
PlayList<PlayListItem> implements List {
private List<PlayListItem> lsObjs = null;
boolean bShuffleMode = false;
int Pos = 0;
}
对此不确定...可能仍需要建议。如果我指定列表中的对象,我什至可以实现列表吗?嗯……
【问题讨论】:
-
+1 表示“我希望我再次回到那个年龄”。难道我们都没有!