播放轨道在随机顺序java



我走对了吗?它必须以随机顺序播放数组列表中的每条音轨一次。

public void randomAllTrack() { 
    int shuffle = getNumberOfTracks();
    int shuffleplay = randomTrack.nextInt(shuffle);
    Track track = tracks.get(shuffleplay);
    int i=0;
    while(i < getNumberOfTracks())
    {player.startPlaying(track.getFilename());
        System.out.println("Now playing: " + track.getArtist() + " - "
        + track.getTitle());
        i++;}
}

假设tracksCollection,您可以在执行Collections.shuffle(List)之后使用for-each循环,并且可以使用格式化的IO。就像

public void randomAllTrack() {
    List<Track> randomTracks = new ArrayList<>(tracks);
    Collections.shuffle(randomTracks);
    for (Track track : randomTracks) {
        player.startPlaying(track.getFilename());
        System.out.printf("Now playing: %s - %s%n", track.getArtist(),
                track.getTitle());
    }
}

创建List并使用Collection,如果您只需要初始洗牌: List<Track> tracks = new ArrayList<>(); Collections.shuffle(tracks); for (Track track : tracks) { System.out.println("Playing track: " track.getFilename()); }