PlayList类中的显示播放列表中所有歌曲的方法

PlayList类中的显示播放列表中所有歌曲的方法

public void displayAllSong(PlayListCollection player) {

if (musicList.size() == 0) {

System.out.println("当前播放列表为空");

} else {

System.out.println("请输入要显示的播放列表名称:");

playListName = sc.next();

Set<String> keySet = player.getMap().keySet();

boolean flag = false;

for (String key : keySet) {

if (key.equals(playListName)) {

List<Song> list = player.getMap().get(key).musicList;

for (int i = 0; i < list.size(); i++) {

System.out.println(list.get(i).toString());

}

flag = false;

break;

}

}

if (flag) {

System.out.println("该播放列表不存在");

}


}


}

老师请帮我看一下这个方法有没有错,在显示主播放列表的时候会出错

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
irista23 2018-08-05 08:01:48

1、根据详细设计displayAllSong()是无参的,所以只要在其中遍历播放列表的歌曲集合List<Song>,输出Song对象即可。

http://img1.sycdn.imooc.com//climg/5b663d160001046830501458.jpg

2、addToPlayList(Song song) 方法里添加的就是传进来的Song对象,在传进来之前建议完成属性赋值,在该方法中,先循环遍历判断播放列表中的歌曲是否存在,如果不存在就使用add()方法对播放列表的歌曲集合List<Song>进行添加操作


提问者 慕桂英8566455 2018-08-04 10:31:32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public void addToPlayList(Song song) {
 
        System.out.println("请输入要添加的歌曲数量:");
        int i = sc.nextInt();
        for (int j = 1; j <= i; j++) {
            System.out.println("请输入第" + j + "首歌曲");
            System.out.println("请输入歌曲的id:");
            song.setId(sc.next());
            System.out.println("请输入歌曲的名称:");
            song.setName(sc.next());
            System.out.println("请输入演唱者:");
            song.setSinger(sc.next());
            musicList.add(song);
            song = new Song();
 
        }
    }
     
    switch (i) {
            case 1:
                test1.playListMenu();
                boolean flag2 = true;
                while (flag2) {
                    int j = sc.nextInt();
                    switch (j) {
                    case 1:
                        System.out.println("将歌曲添加到主播放列表");
                        playList.addToPlayList(song);
                        playListCollection.getMap().put("主播放列表", playList);
                        System.out.println("歌曲添加成功");
                        test1.playListMenu();
                        break;
                    case 2:
                        System.out.println("将歌曲添加到普通播放列表:");
                        if (playListCollection.getMap().size() == 1) {
                            System.out.println("当前尚未创建普通列表");
                        else {
                            System.out.println("请输入要添加的播放列表名称:");
                            String listName1 = sc.next();
                            boolean f = playListCollection.booleanList(listName1);                          
                            if (f) {
                                PlayList playList1 = new PlayList();
                                playList1.addToPlayList(song);
                                playListCollection.getMap().put(listName1, playList1);
                            else {
                                System.out.println("该播放列表不存在!");
                            }                  
                                                 
                             
                        }


  • 提问者 慕桂英8566455 #1
    请输入对应数字进行操作: 1 将歌曲添加到主播放列表 请输入要添加的歌曲数量: 2 请输入第1首歌曲 请输入歌曲的id: s01 请输入歌曲的名称: cat 请输入演唱者: cc 请输入第2首歌曲 请输入歌曲的id: s02 请输入歌曲的名称: dog 请输入演唱者: dd 歌曲添加成功 请输入对应数字进行操作: 2 将歌曲添加到普通播放列表: 请输入要添加的播放列表名称: love 请输入要添加的歌曲数量: 1 请输入第1首歌曲 请输入歌曲的id: s03 请输入歌曲的名称: pig 请输入演唱者: pp 结果显示主播放列表却是这样子的 请输入对应数字进行操作: 7 主播放列表 请输入要显示的播放列表名称: 主播放;列表列表 歌曲信息:id为s03, 歌曲名称为:pig, 演唱者为:pp 歌曲信息:id为s02, 歌曲名称为:dog, 演唱者为:dd 希望能有大佬帮忙解释疑惑,不知道是添加歌曲的时候出错还是显示出错了
    2018-08-04 10:34:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码