主列表和普通列表的调用问题。
1、在《播放列表》中添加普通列表在7选项中读出的“普通列表名”为NUll,主列表名可以读出。2、《播放器管理中》4选项只能读出-普通列表名,不能读出主列表。是哪里的问题?
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
/**
* 播放列表类
* @author adm
*
*/
public class PlayList {
//属性:播放列表名称(playListName):字符串类型;播放列表中的歌曲集合(musicList):List类型
private String playListName;
public List<Song> musicList = new ArrayList<Song>();
//无参构造方法
public PlayList() {
}
//有参构造方法
public PlayList(String playListName, List<Song> musicList) {
super();
this.playListName = playListName;
this.musicList = musicList;
}
public PlayList(String string) {
this.playListName = playListName;
}
//getter和setter方法
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;
}
Scanner sc = new Scanner(System.in);
PlayListCollection plCollection = new PlayListCollection();
//将歌曲添加到播放列表的方法
public void addToPlayList(Song song) {
System.out.println("请输入要添加的歌曲数量:");
int addSongTotal = sc.nextInt();
String songId = null;
String songName = null;
String songSinger = null;
for(int i = 0;i < addSongTotal;i++) {
System.out.println("请输入第"+(i+1)+"首歌曲!");
System.out.println("请输入歌曲的ID:");
songId = sc.next();
System.out.println("请输入歌曲的名称:");
songName = sc.next();
System.out.println("请输入歌曲的演唱者:");
songSinger = sc.next();
song = new Song(songId,songName,songSinger);
for(int j = 0;j < musicList.size();j++) {
if(song.getId().equals(musicList.get(j).getId())) {
System.out.println("该歌曲已经存在!");
return;
}
}
musicList.add(song);
}
System.out.println("歌曲添加成功!");
System.out.println(playListName);
for(Song s:musicList) {
System.out.println(s);
}
}
//显示播放列表中所有歌曲
public void displayAllSong() {
if(musicList.size() == 0) {
System.out.println("当前播放列表为空");
}else {
System.out.println(playListName);
for(int i=0;i<musicList.size();i++) {
System.out.println(musicList.get(i).toString());
}
}
}
//通过id查询歌曲
public Song searchSongById(String id) {
return null;
}
//通过名称查询歌曲
public Song searchSongByName(String name) {
return null;
}
//修改歌曲
public void updateSong(String id,Song song) {
}
//从播放列表删除歌曲
public void deleteSong(String id) {
}
//导出歌曲
public void exporPlayList() {
}
}
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
/**
* 播放器类
* @author adm
*
*/
public class PlayListCollection {
//属性:存放播放列表的集合(playListMap):Map
public Map<String,PlayList> playListMap =new HashMap<String,PlayList>();
//无参构造方法
public PlayListCollection() {
}
//有参构造方法
public PlayListCollection(Map<String, PlayList> playListMap) {
super();
this.playListMap = playListMap;
}
//getter 和setter方法
public Map<String, PlayList> getPlayListMap() {
return playListMap;
}
public void setPlayListMap(Map<String, PlayList> playListMap) {
this.playListMap = playListMap;
}
Scanner sc = new Scanner(System.in);
//添加播放列表
public void addPlayList(PlayList playList) {
String name = sc.next();
if(playListMap.containsKey(name) == true) {
System.out.println("该播放列表已存在!");
}else {
playListMap.put(name, playList);
}
System.out.println("添加成功!");
}
//删除播放列表
public void deletePlayList(PlayList playList) {
}
//通过名字查询
public PlayList searchPlayListByName(String playListName) {
PlayList playList=null;
Set<String> playListSet=playListMap.keySet();
for(String s:playListSet){
if(s.equals(playListName)){
playList=playListMap.get(s);
System.out.println("查询的播放列表:"+s);
break;
}
}
return playList;
}
//显示所有播放列表名称
public void displayPlayListName() {
System.out.println("显示所有播放列表名称");
if(playListMap.size()==0) {
System.out.println("当前播放列表为空!");
}else {
Set<Entry<String,PlayList>> entrySet = playListMap.entrySet();
for(Entry<String,PlayList> entry:entrySet) {
System.out.println(entry.getKey());
}
}
}
}
import java.util.Iterator;
import java.util.Scanner;
import com.stone.playcollection.PlayList;
import com.stone.playcollection.PlayListCollection;
import com.stone.playcollection.Song;
/**
* 播放器项目测试项
* @author adm
*
*/
public class TestDemo {
//主菜单选择显示项
public void showMainChoice() {
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 showPlayListChoice() {
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 showPlayListCollectionChoice() {
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) {
TestDemo td = new TestDemo();
Scanner sc = new Scanner(System.in);
Song song =new Song();
PlayList playList = new PlayList();
PlayList mainPlayList = new PlayList("主播放列表",playList.getMusicList());
PlayList numPlayList = new PlayList(null);
PlayListCollection plCollection = new PlayListCollection();
boolean flag = true;
while(flag) {
//外层循环
td.showMainChoice();
String str = sc.next();
switch(str) {
case "1":
//选项1内层循环
td.showPlayListChoice();
boolean flag1 = true;
while(flag1) {
try {
int n1 = sc.nextInt();
switch(n1) {
case 1:
System.out.println("将歌曲添加到主播放列表");
mainPlayList.addToPlayList(song);
break;
case 2:
System.out.println("将歌曲添加到普通列表");
System.out.println("请输入要添加的列表名称:");
String stringName;
stringName = sc.next();
if((plCollection.getPlayListMap()).containsKey(stringName) == true) {
//id和演唱者需要接收输入传进去,并且需要判断该id的歌曲是否在主播放列表存在
numPlayList.addToPlayList(null);
break;
}else {
System.out.println("该播放列表不存在,请先将播放列表添加到播放器当中");
}
break;
case 3:
System.out.println("通过歌曲id查询播放列表中的歌曲");
System.out.println("请输入歌曲Id");
String str1 = sc.next();
break;
case 4:
System.out.println("通过歌曲名称查询播放列表中的歌曲");
System.out.println("请输入歌曲名称:");
String str2 = sc.next();
break;
case 5:
System.out.println("修改播放列表中的歌曲");
break;
case 6:
System.out.println("删除播放列表中的歌曲");
System.out.println("请输入要删除的歌曲名称:");
String str3=sc.next();
break;
case 7:
mainPlayList.displayAllSong();
break;
case 8:
System.out.println("歌单导出成功");
break;
case 9:
flag1 = false;
break;
default:
System.out.println("输入错误!请重新选择!");
}
}catch(java.util.InputMismatchException e) {
System.out.println("输入错误!请输入整数!");
return;//跳出当前循环
}
td.showPlayListChoice();
}
break;
case "2":
//选项2的内循环
td.showPlayListCollectionChoice();
boolean flag2 = true;
while(flag2) {
try {
int n2 = sc.nextInt();
switch(n2) {
case 1:
System.out.println("向播放器添加播放列表");
System.out.println("输入要添加的播放列表名称:");
plCollection.addPlayList(numPlayList);
break;
case 2:
System.out.println("从播放器删除播放列表");
System.out.println("请输入要删除的播放列表名称:");
plCollection.deletePlayList(numPlayList);
break;
case 3:
System.out.println("通过名字查询播放列表信息");
System.out.println("请输入要查询的播放列表名称:");
String playListName2 = sc.next();
for(Song song1:plCollection.searchPlayListByName(playListName2).musicList) {
System.out.println(song1);
}
break;
case 4:
System.out.println("显示所有播放列表名称");
System.out.println("播放列表名称为:");
plCollection.displayPlayListName();
break;
case 9:
flag2 = false;
break;
default:
System.out.println("输入错误!请重新选择!");
}
}catch(java.util.InputMismatchException e) {
System.out.println("输入错误!请输入整数!");
return;//跳出当前循环
}
td.showPlayListCollectionChoice();
}
break;
case "0":
System.exit(0);
System.out.println("退出成功!!");
break;
default:
System.out.println("输入错误!请重新选择!");
}
}
}
}
正在回答
1)选择“7--显示播放列表中个的所有歌曲”后,你调用的mainPlayList.displayAllSong();这是主列表名呀,没有显示普通列表numPlayList,你应该显示plCollection中的所有内容。2)plCollection中没有添加上主列表,你应该直接把主列表添加进去。祝:学习愉快
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星