老师,请帮我看看是什么问题,谢谢
老师,帮我看看为什么添加歌曲到普通列表中时,也自动添加到了主播放列表中,删除也是一样的情况,还有导出文件的时候报错,请问是什么原因
// 将歌曲添加到播放列表
Scanner sc = new Scanner(System.in);
public void addToPlayList(Song song) {
Song song1=new Song();
boolean flag=false;
for (int i = 0; i < musicList.size(); i++) {
if (musicList.get(i).getId().equals(song1.getId())) {
System.out.println("该歌曲已经存在,请不要重复添加");
flag=true;
break;
}
}
if(flag==false) {
musicList.add(song);
System.out.println("添加成功!");
}
}
********************************************************************************************
//修改歌曲信息
public void updateSong() {
System.out.println("请输入要修改的歌曲id:");
String id=sc.next();
boolean flag=false;
for (int i = 0; i < musicList.size(); i++) {
if (musicList.get(i).getId().equals(id)) {
System.out.println("请输入要修改的歌曲名");
String name = sc.next();
musicList.get(i).setName(name);
System.out.println("请输入要修改的演唱者");
String singer = sc.next();
musicList.get(i).setSinger(singer);
System.out.println("修改成功!");
flag = true;
break;
}
}
if (!flag) {
System.out.println("12该歌曲不存在,请重新输入!");
}
}
//从播放列表中删除歌曲
public void deleteSong() {
PlayListCollection plc=new PlayListCollection();
System.out.println("请输入要删除的歌曲id:");
String id=sc.next();
boolean flag=false;
for(int i=0;i<musicList.size();i++) {
if(musicList.get(i).getId().equals(id)) {
musicList.remove(i);
System.out.println("删除成功!");
flag=true;
break;
}
}
if(!flag) {
System.out.println("没有该歌曲,请重新输入");
}
}
***********************************************************************
case 1:
System.out.println("将歌曲添加到主播放列表:");
System.out.println("请输入要添加的歌曲数量!");
int num = sc.nextInt();
for (int i = 0; i < num; i++) {
System.out.println("请添加第" + (i + 1) + "首歌曲:");
System.out.println("请输入歌曲的id:");
String musicid = sc.next();
System.out.println("请输入歌曲的名称:");
String name = sc.next();
System.out.println("请输入歌曲的演唱者:");
String singer = sc.next();
Song song=new Song(musicid,name,singer);
pl.addToPlayList(song);
plc.getPlayListMap().put("主播放列表", pl);
}
break;
case 2:
System.out.println("将歌曲添加到普通播放列表:");
System.out.println("请输入普通播放列表的名称:");
boolean hhh = false;
String playListName = sc.next();
Set<String> keySet = plc.getPlayListMap().keySet();
for (String key : keySet) {
if (playListName.equals(key)) {
System.out.println("请输入要添加的歌曲数量!");
int num1 = sc.nextInt();
for (int i = 0; i < num1; i++) {
System.out.println("请添加第" + (i + 1) + "首歌曲:");
System.out.println("请输入歌曲的id:");
String musicid = sc.next();
System.out.println("请输入歌曲的名称:");
String name = sc.next();
System.out.println("请输入歌曲的演唱者:");
String singer = sc.next();
Song song=new Song(musicid,name,singer);
pl.addToPlayList(song);
}
hhh = true;
}
}
if (hhh == false) {
System.out.println("3该播放列表不存在,请先将播放列表到播放器中!");
}
break;
******************************************************************************************
case 5:
System.out.println("修改播放列表中的歌曲;");
System.out.println("请输入播放列表的名称:");
String name7 = sc.next();
Set<String> keySet3 = plc.getPlayListMap().keySet();
for (String key3 : keySet3) {
if (name7.equals(key3)) {
pl.updateSong();
hhh = true;
}
}
if (hhh = false) {
System.out.println("3该播放列表不存在,请先将播放列表到播放器中!");
}
break;
case 6:
System.out.println("删除播放列表中的歌曲");
pl.deleteSong();
break;
case 7:
System.out.println("显示播放列表中的所有歌曲");
System.out.println("请输入播放列表的名称:");
Set<String> keySet4 = plc.getPlayListMap().keySet();
String name1 = sc.next();
for (String key4 : keySet4) {
if (name1.equals(key4)) {
pl.displayAllSong();
hhh = true;
}
}
if (hhh = false) {
System.out.println("3该播放列表不存在,请先将播放列表到播放器中!");
}
break;
case 8:
System.out.println("导出歌曲");
plc.outPut();
break;
**********************************************************************
正在回答 回答被采纳积分+1
public void outPut() {
System.out.println("请输入要导出的播放列表名称:");
String listName = sc.next();
Set<String> keySet = playListMap.keySet();
for (String key : keySet) {
if (listName.equals(key)) {
File file = new File(listName + ".txt");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
FileOutputStream fos = new FileOutputStream(listName + ".txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(playListMap.get(listName));
System.out.println("歌单导出成功!");
oos.flush();
fos.close();
oos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星