写一段程序来随机播放10首歌曲,要求不能重复。

笔试题:

请写一段程序来随机播放10首歌曲。要求不能重复。
  输入:10首歌曲名,放在一个list里。
  输出:10首歌曲名,放在一个list里。
public class RandomSong {
    public static void main(String[] args) {
        //创建list集合,存放10首歌曲
        List inputSongs = new ArrayList<>();
        inputSongs.add("歌曲1");
        inputSongs.add("歌曲2");
        inputSongs.add("歌曲3");
        inputSongs.add("歌曲4");
        inputSongs.add("歌曲5");
        inputSongs.add("歌曲6");
        inputSongs.add("歌曲7");
        inputSongs.add("歌曲8");
        inputSongs.add("歌曲9");
        inputSongs.add("歌曲10");

        Random random = new Random();
        Map map = new HashMap<>();
        List outputSongs = new ArrayList<>();
        //遍历10首歌曲,存到map集合
        for (int i = 0; i < inputSongs.size(); i++) {
            int num = random.nextInt(10) + 1;
            if (map.containsKey(num)) {
                i--;
            } else {
                map.put(num,inputSongs.get(i));
            }
        }
        //遍历map集合,存到输出的list
        Set> entrySet = map.entrySet();
        for (Map.Entry entry : entrySet) {
            outputSongs.add(entry.getValue());
        }
        //输出10首歌曲
        for (String s : outputSongs) {
            System.out.println(s);
        }
    }
}

 

你可能感兴趣的:(java)