Java 集合从倒数第二个开始取值的问题!

项目中音乐播放器模块 有个 随机播放功能, 下一首是随机的,然而我把上一首也做成了随机了, 我看好多音乐播放器 如果是随机模式的话 按上一首直接回到刚刚听过的那首歌! 我现在的思路是, 如果是随机模式, 我把用户点击的下一首 那些歌曲存到一个集合中, 然后 当他点击上一首的时候 我判断 如果是随机 那么就从这个集合中取值即可, 但问题是 咋从倒数第二个开始取值啊!? 并且还是依次从倒数第二个开始往前取值! 用户点击下一首 点了10来次了 我得把这10来条依次从倒数第二个开始取值啊 求思路!

阅读 5.1k
2 个回答

你需要用到栈这个数据结构 java.util.Stack,点击下一首时把当前这首入栈push(),上一首在将歌曲出栈pop()

private String current; //当前歌曲

private Stack<String> stack = new Stack<>(10);

public String next(){
    if(current != null){
        stack.push(current);
    }
    current = randomSong();
    return current;
}

public String prev(){
    current = stack.pop();
    return current
}

List<?> plays = new Array<>();
? getLast(int currentIndex){

if(currentIndex > 0)
    return plays.get(currentIndex - 1);
return plays.get(0);    

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题