无法从键盘中输入数据存储到主播放列表中

来源:4-7 自由编程

MAYxDAY

2020-02-16 14:17:10

package com.imooc.player1;


import java.util.Map;

import java.util.Scanner;

import java.util.Set;


public class PlayerTest {

public void mainMenu() {

System.out.println("*********************************************");

System.out.println("                  1--播放列表管理 ");

System.out.println("                  2--播放器管理 ");

System.out.println("                  0--退出 ");

System.out.println("*********************************************");

}


public void palyListMenu() {

System.out.println("***************************************************************");

System.out.println("                  **播放列表管理 ");

System.out.println("                  1--将歌曲添加到主播放列表");

System.out.println("                  2--将歌曲添加到普通播放列表");

System.out.println("                  3--通过歌曲id查询播放到列表的歌曲");

System.out.println("                  4--通过歌曲名称查询播放到列表的歌曲");

System.out.println("                  5--修改播放列表中的歌曲");

System.out.println("                  6--删除播放列表中的歌曲");

System.out.println("                  7--显示播放列表中的所有歌曲");

System.out.println("                  9--返回上一级菜单");

System.out.println("****************************************************************");

}


public void palyerLsit() {

System.out.println("***************************************************************");

System.out.println("                  **播放器管理 ");

System.out.println("                  1--向播放器添加播放列表");

System.out.println("                  2--从播放器删除播放列表");

System.out.println("                  3--通过名字查询播放列表信息");

System.out.println("                  4--显示所有播放列表名称");

System.out.println("                  9--返回上一级菜单");

System.out.println("****************************************************************");

}


public void test() {

PlayListCollection plc=new PlayListCollection();

PlayList mainPlayList=new PlayList("主播放列表");

plc.addPlayList(mainPlayList);

PlayList normalPlayList=null;

Scanner sc = new Scanner(System.in);

int input1 = 0, input2 = 0, input3 = 0;

PlayerTest pt = new PlayerTest();

while (true) {

pt.mainMenu();

System.out.println("请输入对应的数字:");

input1 = sc.nextInt();

if (input1 == 0) {

System.out.println("程序退出");

break;

}

switch (input1) {

case 1:

System.out.println("进入播放列表管理");

while (true) {

pt.palyListMenu();

System.out.println("请输入对应的数字:");

input2 = sc.nextInt();

if (input2 == 9) {

break;

}

switch (input2) {

case 1:

System.out.println("将歌曲添加到主播放列表");

System.out.println("请输入添加歌曲的数量:");

int count=sc.nextInt();

for(int i=1;i<=count;i++) {

System.out.println("请输入第"+i+"首歌曲的信息:");

System.out.println("请输入歌曲的id:");

String strid=sc.next();

System.out.println("请输入歌曲的名字:");

String strname=sc.next();

System.out.println("请输入歌手的名字:");

String strsinger=sc.next();

Song song=new Song(strid,strname,strsinger);

mainPlayList.addToPlayList(song);

mainPlayList.displayAllSong();

}

break;

case 2:

System.out.println("将歌曲添加到普通播放列表");

System.out.println("请输入普通列表的名字:");

String strListName=sc.next();

normalPlayList=plc.searchPlayListByName(strListName);

if(normalPlayList==null) {

System.out.println("你输入普通列表不存在!");

break;

}else {

System.out.println("请输入添加歌曲的数量:");

int count1=sc.nextInt();

for(int i=1;i<=count1;i++) {

System.out.println("请输入第"+i+"首歌曲的id:");

String strid=sc.next();

Song song=mainPlayList.searchSongById(strid);

if(song==null) {

System.out.println("这首歌在主播放列表中不存在,请继续输入歌曲信息!");

System.out.println("请输入这首歌的名字:");

String strname=sc.next();

System.out.println("请输入歌手的名字:");

String strsinger=sc.next();

Song song1=new Song(strid,strname,strsinger);

mainPlayList.addToPlayList(song1);

normalPlayList.addToPlayList(song1);

}else {

normalPlayList.addToPlayList(song);

}

}

}

break;

case 3:

System.out.println("通过歌曲id查询播放到列表的歌曲");

System.out.println("请输入查询id的播放列表");

String strListaName=sc.next();

PlayList pl=plc.searchPlayListByName(strListaName);

if(pl==null) {

System.out.println("你要查询的播放列表不存在!");

}else {

System.out.println("请输入你要查询的id!");

String strid=sc.next();

Song s=pl.searchSongById(strid);

if(s==null) {

System.out.println("你要查询的歌曲不存在!");

}else {

System.out.println("歌曲的信息为:");

System.out.println(s);

}

}

break;

case 4:

System.out.println("通过歌曲名称查询播放到列表的歌曲");

System.out.println("请输入查询歌曲名字的播放列表");

String strListaName1=sc.next();

PlayList pl1=plc.searchPlayListByName(strListaName1);

if(pl1==null) {

System.out.println("你要查询的播放列表不存在!");

}else {

System.out.println("请输入你要查询的歌曲名字!");

String strid=sc.next();

Song s=pl1.searchSongById(strid);

if(s==null) {

System.out.println("你要查询的歌曲不存在!");

}else {

System.out.println("歌曲的信息为:");

System.out.println(s);

}

}

break;

case 5:

System.out.println("修改播放列表中的歌曲");

System.out.println("请输入要修改歌曲的id");

String strSongId=sc.next();

Map<String,PlayList> pl2=plc.getPlayListMap();

Set<String> listSet=pl2.keySet();

for(String s:listSet) {

PlayList pl3=pl2.get(s);

Song song=pl3.searchSongById(strSongId);

if(song==null) {

System.out.println("没要找到要查询的歌曲!");

break;

}

else {

pl3.deleteSong(strSongId);

System.out.println("请输入要修改的歌曲信息");

System.out.println("请输入歌曲的名字");

String strname=sc.next();

System.out.println("请输入歌手的名字");

String strsinger=sc.next();

Song song1=new Song(strSongId,strname,strsinger);

pl3.updateSong(strSongId, song1);

break;

}

}

break;

case 6:

System.out.println("删除播放列表中的歌曲");

System.out.println("请输入要删除歌曲的id");

String strid=sc.next();

Map<String,PlayList> listSet1=plc.getPlayListMap();

Set<String> pl4=listSet1.keySet();

for(String s:pl4) {

PlayList pl5=listSet1.get(s);

Song song=pl5.searchSongById(strid);

if(song==null) {

System.out.println("没要找到要查询的歌曲!");

break;

}else {

pl5.deleteSong(strid);

System.out.println("删除成功");

break;

}

}

break;

case 7:

System.out.println("显示播放列表中的所有歌曲");

System.out.println("请输入要查询的播放列表的名字");

String strListName1=sc.next();

PlayList pl6=plc.searchPlayListByName(strListName1);

if(pl6!=null)

{System.out.println("该列表的歌曲为:");

pl6.displayAllSong();

break;}

else {

System.out.println("你输入的列表不存在");

}

break;

default:

System.out.println("输入数字没有对应的功能");

break;

}

}

break;

case 2:

System.out.println("进入播放器管理");

while (true) {

pt.palyerLsit();

System.out.println("请输入对应的数字:");

input3 = sc.nextInt();

if (input3 == 9) {

break;

}

switch (input3) {

case 1:

System.out.println("向播放器添加播放列表");

System.out.println("请输入普通播放列表的名字:");

String playerName=sc.next();

normalPlayList=new PlayList(playerName);

plc.addPlayList(normalPlayList);

break;

case 2:

System.out.println("从播放器删除播放列表");

System.out.println("请输入要删除的播放列表的名字");

String strListName=sc.next();

if(strListName.equals("主播放列表")) {

System.out.println("主播放列表不能删除");

}

PlayList pl=plc.searchPlayListByName(strListName);

if(pl==null) {

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

}else {

plc.deletePlayList(pl);

}

break; 

case 3:

System.out.println("通过名字查询播放列表信息");

System.out.println("请输入要查询列表的名字");

String strName=sc.next();

PlayList pl1=plc.searchPlayListByName(strName);

if(pl1==null) {

System.out.println("你查询的播放列表名称不存在");

break;

}else {

System.out.println("你要查询的播放列表信息为:");

pl1.displayAllSong();

}

break;

case 4:

System.out.println("显示所有播放列表名称");

plc.disPlayListName();

break;

default:

System.out.println("输入数字没有对应的功能");

break;

}

}

break;

default:

System.out.println("输入数字没有对应的功能");

break;

}

}

}


public static void main(String[] args) {

PlayerTest pt=new PlayerTest();

pt.test();


}


}


写回答

4回答

好帮手慕珊

2020-02-16

同学,你好!程序的运行效果如下,歌曲已经添加到主播放列表中了,没有出现同学说的问题。

http://img.mukewang.com/climg/5e4901ab09ce303a10660928.jpg

不过你的代码一开始有一个编译错误,在PlayerTest类中,如下所示的方法名写错了,应改为;

pl1.dispalyAllSong();

http://img.mukewang.com/climg/5e4903340900cd6714441006.jpg

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

0
hAYxDAY
h 我可能发错了,,我重新发一下编码。。
h020-02-16
共1条回复

MAYxDAY

提问者

2020-02-16

package com.imooc.player;


import java.util.HashMap;

import java.util.Map;

import java.util.Set;


public class PlayListCollection {

Map<String,PlayList> playListMap;

public PlayListCollection() {

playListMap=new HashMap<>();

}

public Map<String, PlayList> getPlayListMap() {

return playListMap;

}

public void setPlayListMap(Map<String, PlayList> playListMap) {

this.playListMap = playListMap;

}

/**

 * 添加播放列表

 * @param playList

 */

public void addPlayList(PlayList playList) {

playListMap.put(playList.getPlayListName(), playList);

}

/**

 * 通过名字查询

 * @param playListName 查询歌单的名字

 * @return 歌单列表

 */

public PlayList searchPlayListByName(String playListName) {

PlayList playList=null;

Set<String> playListNameSet=playListMap.keySet();

for(String s:playListNameSet) {

if(s.equals(playListName)) {

playList=playListMap.get(s);

break;

}

}

return playList;

}

/**

 * 删除播放列表

 * @param playList

 */

public void deletePlayList(PlayList playList) {

playListMap.remove(playList.getPlayListName());

}

/**

 * 显示所有播放列表

 */

public void disPlayListName() {

Set<String> playListNameSet=playListMap.keySet();

for(String s:playListNameSet) {

System.out.println(s);

}

}

}


0

MAYxDAY

提问者

2020-02-16

package com.imooc.player;


import java.util.ArrayList;

import java.util.List;


public class PlayList {

private String playListName;

private List<Song> musicList;


public PlayList(String playListName) {

this.playListName = playListName;

musicList = new ArrayList<Song>();

}


public String getPlayListName() {

return playListName;

}


public void setPlayListName(String playListName) {

this.playListName = playListName;

}


public List<Song> getMusicList() {

return musicList;

}


public void setMusicList(List<Song> musicList) {

this.musicList = musicList;

}


/**

* 添加歌曲的方法

* @param song

*/

public void addToPlayList(Song song) {

boolean flag = false;

for (Song song1 : musicList) {

if (song1.equals(song)) {


flag = true;

break;

}

}

if (flag) {

System.out.println("歌曲已存在!");

} else {

musicList.add(song);

}

}


//显示播放列表所有所有歌曲

public void dispalyAllSong() {

for (Song song : musicList) {

System.out.println(song);

}

}


//通过id查询歌曲

public Song searchSongById(String id) {

Song song = null;

for (Song song1 : musicList) {

if (song1.getId().equals(id)) {

song = song1;

break;

}

}

return song;


}

//通过name查询歌曲

public Song searchSongByName(String name) {

Song song = null;

for (Song song1 : musicList) {

if (song1.getName().equals(name)) {

song = song1;

break;

}

}

return song;


}

//修改歌曲

public void updateSong(String id,Song song) {

Song song1=searchSongById(id);

if(song1==null) {

System.out.println("没有找到id为"+id+"对应的歌曲信息!");

}else {

musicList.remove(song1);

musicList.add(song);

System.out.println("修改成功!");

}

}

//删除歌曲

public void deleteSong(String id) {

Song song=searchSongById(id);

if(song==null) {

System.out.println("没有找到id为"+id+"对应的歌曲信息!"); 

}else {

musicList.remove(song);

}

}

}


0

MAYxDAY

提问者

2020-02-16

package com.imooc.player;


public class Song {

private String id;//id

private String name;//歌曲名字

private String singer;//歌手

public Song(String id, String name, String singer) {

this.id = id;

this.name = name;

this.singer = singer;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSinger() {

return singer;

}

public void setSinger(String singer) {

this.singer = singer;

}

@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + ((id == null) ? 0 : id.hashCode());

result = prime * result + ((name == null) ? 0 : name.hashCode());

result = prime * result + ((singer == null) ? 0 : singer.hashCode());

return result;

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if(obj.getClass()==Song.class) {

Song song=(Song)obj;

return song.getId().equals(id)&&song.getName().equals(name)&&song.getSinger().equals(singer);

}return false;

}

@Override

public String toString() {

return "歌曲信息:id:" + id + "歌曲名字:" + name + "歌手:" + singer ;

}


}


0

0 学习 · 11489 问题

查看课程