关于歌曲id的唯一性

关于歌曲id的唯一性

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
//添加歌曲
public void addToPalyList(Song song) {
    boolean flag = false;
    for (Song s : musicList) {
        if (s.equals(song)) {
            flag = true;
            break;
        }
    }
    if (flag) {
        System.out.println(song.getName() + "已存在于此列表中,无法添加!");
    else {
        musicList.add(song);
    }
}
 
//删除歌曲(id)
public void deleteSong(String id) {
    //先判断歌曲id是否在列表中
    Song s = null;
    for (Song song : musicList) {
        if (song.getId().equals(id)) {
            s = song;
            break;
        }
    }
    if (s != null) {
        musicList.remove(s);
        System.out.println("该歌曲已从列表中删除!");
        System.out.println("删除后的列表歌曲信息为:");
        displayAllSong();
    else {
        System.out.println("该歌曲不存在!");
    }
}
 
//显示播放列表中所有歌曲
public void displayAllSong() {
    System.out.println("主播放列表中所有的歌曲:");
    for (Song song : musicList) {
        System.out.println(song);
    }
}
 
//根据id找歌(唯一性)
public void searchSongById(String id) {
    Song song = null;
    for (Song s : musicList) {
        if (s.getId().equals(id)) {
            song = s;
            break;
        }
    }
    if (song == null) {
        System.out.println("该列表中没有此歌曲!");
    else {
        System.out.println("根据歌曲id查询到的歌曲信息为:");
        System.out.println(song);
    }
}
 
//根据歌名找歌(由于格式不同,可能出现同歌名情况)
public void searchSongByName(String name) {
    List<Song> list = new ArrayList<>();
    for (Song s : musicList) {
        if (s.getName().equals(name)) {
            list.add(s);
        }
    }
    if (list.size() == 0) {
        System.out.println("该列表中没有此歌曲!");
    else {
        System.out.println("根据歌名查询到的歌曲信息为:");
        for (Song s : list) {
            System.out.println(s);
        }
    }
}
 
//根据格式找歌(不唯一性,所以返回值可能是多个,可以用集合表示)
public void searchByFormat(String format) {
    List<Song> list = new ArrayList<Song>();
    int count = 0;
    for (Song song : musicList) {
        if (song.getFormat().equals(format)) {
            list.add(song);
            count++;
        }
    }
    if (list.size() != 0) {
        System.out.println("根据歌曲格式查询到的歌曲有:" + count + "首");
        int num = 1;
        for (Song s : list) {
            System.out.println("第" + num + "首" "歌名为:" + s.getName());
        }
    else {
        System.out.println("该格式的歌曲不存在!");
    }
}
 
//根据歌手找歌
public void searchBySinger(String singer) {
    List<Song> list = new ArrayList<Song>();
    int count = 0;
    for (Song song : musicList) {
        if (song.getSinger().equals(singer)) {
            list.add(song);
            count++;
        }
    }
    if (list.size() != 0) {
        System.out.println(singer + "的歌曲有:" + count + "首");
        int num = 1;
        for (Song s : list) {
            System.out.println("第" + num + "首" "歌名为:" + s.getName());
        }
    else {
        System.out.println(singer + "的歌曲不存在!");
    }
}

//定义song对象
   Song s1 = new Song("01", "青花瓷", "周杰伦", "MP3");
   Song s2 = new Song("02", "红豆", "王菲", "WMA");
   Song s3 = new Song("03", "山丘", "李宗盛", "APE");
   Song s4 = new Song("04", "消愁", "毛不易", "FLAC");
   Song s5 = new Song("05", "听海", "张惠妹", "APE");
   Song s6 = new Song("06", "青花瓷", "周杰伦", "APE");
   Song s7 = new Song("02", "暧昧", "王菲", "WMA");
   //创建PlayLis对象
   PlayList pl = new PlayList("主播放列表");
   pl.addToPalyList(s1);
   pl.addToPalyList(s2);
   pl.addToPalyList(s3);
   pl.addToPalyList(s4);
   pl.addToPalyList(s5);
   pl.addToPalyList(s6);
   pl.addToPalyList(s7);
   //显示播放列表
   pl.displayAllSong();
   //id找歌
   pl.searchSongById("02");
   //歌名找歌
   pl.searchSongByName("青花瓷");
   //歌手找歌
   pl.searchBySinger("毛不易");
   //格式找歌
   pl.searchByFormat("APE");
   //删除歌曲(id)
   pl.deleteSong("02");

}

public static void main(String[] args) {
   Test t = new Test();
   //  t.testSong();
   t.TestPlayList();

歌曲id不唯一的情况也可以添加到列表中啊,那查询是应该用一个集合去返回并遍历输出查询到结果吧?并且老师帮忙看看我歌名找歌的方法这样写可以吗(没有返回值的,和课例的不一样)?

正在回答

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

1回答

同学你好,请将所有代码贴上来,方便我们复制代码直接测试。注:贴代码时,注意不要贴在回复里,会失去代码的格式。可以在回答里贴一下。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • LeslieChan994 提问者 #1
    额,提示超过上限了,我重新再提一下吧
    2019-11-18 16:53:04
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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