关于歌曲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不唯一的情况也可以添加到列表中啊,那查询是应该用一个集合去返回并遍历输出查询到结果吧?并且老师帮忙看看我歌名找歌的方法这样写可以吗(没有返回值的,和课例的不一样)?
正在回答
同学你好,请将所有代码贴上来,方便我们复制代码直接测试。注:贴代码时,注意不要贴在回复里,会失去代码的格式。可以在回答里贴一下。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧