通过id查询播放列表中歌曲

来源:1-2 效果演示

qq_林二爷_0

2018-02-14 20:04:19

package comm.imooc.player;


import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Scanner;


public class PlayListCollection {

Scanner sc=new Scanner(System.in);

/**

* 定义存放播放列表的集合(playListMap)

*/

    Map<String,PlayList> playListMap;

    

    /**

     * 无参构造方法

     */

    public PlayListCollection() {

   

    }

    

    /**

     * 多参构造方法

     * @param playListMap

     */

    public PlayListCollection(Map<String, PlayList> playListMap) {

super();

this.playListMap = playListMap;

}

    

/**

* getter和setter方法

* @return

*/

    public Map<String, PlayList> getPlayListMap() {

return playListMap;

}


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

this.playListMap = playListMap;

}

/**

* 方法21:添加播放列表

* @param playlist

*/

public void addPlayList(PlayList playlist) {

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

System.out.println("输入要添加的播放列表名称:");

String playlistname=sc.next();

playListMap.put(playlistname, new PlayList(playlistname,new ArrayList<Song>()));

}

/**

* 方法22:删除播放列表

* @param playList

*/

public void deletePlayList(PlayList playList) {

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

String playlistname=sc.next();

if(playListMap.containsKey(playlistname)) {

playListMap.remove(playlistname, playList);

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

}else {

System.out.println("播放器中没有该播放列表!");

}

}

/**

* 方法23:通过名字查询

* @param playListName

* @return

*/

public PlayList searchListByName(String playListName) {

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

String playlistname=sc.next();

if(playListMap.containsKey(playlistname)) {

System.out.println("该播放列表存在!");

System.out.println("该播放列表的名称为:"+playlistname);

System.out.println("该播放列表中所有的歌曲为:");

}

return null;

}

/**

* 方法24:显示所有播放列表名称

*/

public void disaplayPlayListName() {

Iterator<PlayList> it=playListMap.values().iterator();

while(it.hasNext()) {

System.out.println(it.next());

}

}

}














package comm.imooc.player;


import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Scanner;


public class TestDemo {

/**

* 方法:测试歌曲类

*/

public void testSong() {

}


/**

* 方法:测试播放列表类

*/

public void testPlayList() {

}

/**

* 方法:测试播放器类

*/

public void testPlayListCollection() {

}

/**

* 方法:主菜单

*/

public void mainMenu() {

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

System.out.println("          **主菜单**");

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

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

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

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

System.out.println("请输入对应数字进行操作:");

}

/**

* 方法:播放列表管理菜单

*/

    public void playListMenu() {

    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("          8--导出歌曲");

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

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

System.out.println("请输入对应数字对播放列表进行管理:");

}

/**

* 方法:播放器菜单

*/

    public void playerMenu() {

    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("****************************************");

System.out.println("请输入对应数字对播放器进行管理:");

    }

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

Song song=new Song();//歌曲类对象

PlayList pl=new PlayList();//播放列表类对象

Map<String,PlayList> playListMap=new HashMap<String,PlayList>();//播放器类对象参数(播放器集合)

PlayListCollection plc=new PlayListCollection(playListMap);//播放器类对象

TestDemo test=new TestDemo();//测试类对象

PlayList playlist1=new PlayList("主播放列表",new ArrayList<Song>());//定义主播放列表实例对象

plc.playListMap.put("主播放列表", playlist1);//添加主播放列表实例对象


boolean b=true;

while(b) {

test.mainMenu();

int n=sc.nextInt();

Song song1;

switch(n) {

case 1:test.playListMenu();

while(b) {

int m=sc.nextInt();

switch(m) {

case 1:   

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

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

int k=sc.nextInt();

for(int i=0;i<k;i++) {

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

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

String id=sc.next();

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

String name=sc.next();

System.out.println("请输入歌曲的演唱者:");

String singer=sc.next();

song1=new Song(id,name,singer);

playlist1.addToPlayList(song1);

}

   break;

case 2:

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

   System.out.println("请输入要添加的播放列表名称:");

   String playlistname=sc.next(); 

if(!(plc.getPlayListMap().containsKey(playlistname))) {

System.out.println("该播放列表不存在,请先将播放列表添加到播放器中");

}else if(playlistname.equals(plc.playListMap.get(playlistname).getPlayListName())){

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

int j=sc.nextInt();

for(int i=0;i<j;i++) {

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

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

String id=sc.next();

boolean bl=true;

if(true) {

for(int a=0;a<playlist1.musicList.size();a++) {

if(id.equals(playlist1.musicList.get(a).getId())) {   

plc.playListMap.get(playlistname).addToPlayList(playlist1.musicList.get(a));

bl=false;

break;

   }

}

}

if(bl==false) {

bl=true;

continue;

}else {

bl=true;

}

System.out.println("该歌曲在主播放列表不存在,继续输入歌曲其他信息!");

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

String name=sc.next();

System.out.println("请输入歌曲的演唱者:");

String singer=sc.next();

Song song2=new Song(id,name,singer);

plc.playListMap.get(playlistname).addToPlayList(song2);

playlist1.addToPlayList(song2);

}

System.out.println("主播放列表:");

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

for(int i=0;i<playlist1.musicList.size();i++) {

System.out.println(playlist1.musicList.get(i));

}

System.out.println("普通播放列表:");

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

for(int i=0;i<plc.playListMap.get(playlistname).musicList.size();i++) {

System.out.println(plc.playListMap.get(playlistname).musicList.get(i));

}

}

break;


case 3:

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

String playlistname2=sc.next();

if(playlistname2.equals(plc.playListMap.get(playlistname2).getPlayListName())) {

System.out.println("请输入要查询歌曲id:");

String id=sc.next();

boolean bl=true;

for(int a=0;a<plc.playListMap.get(playlistname2).musicList.size();a++) {

String idd=plc.playListMap.get(playlistname2).musicList.get(a).getId();

if(id.equals(idd)) {   

plc.playListMap.get(playlistname2).searchSongById(idd);

break;

   }

bl=false;

}

if(!bl) {

System.out.println("该歌曲在播放列表"+plc.playListMap.get(playlistname2).getPlayListName()+"中不存在!");

}

}break;

case 4:pl.searchSongByName(song.getName());

break;

case 5:pl.updateSong(song);

break;

case 6:pl.deleteSong(song.getId());

break;

case 7:

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

   System.out.println("请输入要显示的播放列表名称:");

   String plname=sc.next();

   if(!(plc.getPlayListMap().containsKey(plname))) {

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

   }else if(plname.equals(plc.playListMap.get(plname).getPlayListName())) {

    plc.playListMap.get(plname).disaplayAllSong();

   }

break;

case 8:pl.exportPlayList();

break;

}

if(m==9) {

 break;

}

test.playListMenu();

}break;

case 2:test.playerMenu();

while(b) {

int m=sc.nextInt();

switch(m) {

case 1:plc.addPlayList(pl);

   break;

case 2:plc.deletePlayList(pl);

   break;

case 3:plc.searchListByName(pl.getPlayListName());

   break;

case 4:plc.disaplayPlayListName();

   break;

}

if(m==9) {

break;

}

test.playerMenu();

}break;

case 0:

System.out.println("退出!");

b=false;

break;

}

}


}


}



















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

为什么我在主播放列表添加了两首歌,查找第一首歌可以找到,但第二首歌找不到呢??求老师解答

写回答

2回答

喜欢做梦的鱼

2018-02-15

目前你的代码是不完整的,有些问题不确定,建议同学上传全部完整代码,以便于更加准确的帮助解决问题。祝新春快乐!

0

qq_林二爷_0

提问者

2018-02-15

图片传错了,可以忽略图片

0

0 学习 · 14452 问题

查看课程