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
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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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