【Java】集合综合案例 - 播放器管理
集合综合案例
播放器管理
需求分析
项目演示
详细设计
代码实现
重新搞一波 复习巩固
简单记录 慕课网 imooc - Java工程师 - 综合案例:播放器
模拟播放器管理
需求分析
- 播放列表管理
- 播放器管理
播放列表管理主要功能
将歌曲添加到主播放列表
将歌曲添加到平台播放列表
通过歌曲id查询播放列表中的歌曲
通过歌曲名称查询播放列表中的歌曲
修改播放列表中的歌曲
删除播放列表中的歌曲
显示播放列表中的所有歌曲
导出歌单
播放器管理主要功能
向播放器添加播放列表
向播放器删除播放列表
通过名字查询播放列表信息
显示所有播放列表名称
项目演示
D:\Environments\jdk-11.0.2\bin\java.exe -javaagent:D:\Java\ideaIU-2019.2.win\lib\idea_rt.jar=6378:D:\Java\ideaIU-2019.2.win\bin -Dfile.encoding=UTF-8 -classpath D:\IdeaProjects\imooc_Java_Engineer\out\production\CollectionComprehensiveCases player.TestDemo
***************************************
****主菜单*****
1--播放列表管理
2--播放器管理
0--退出
***************************************
请输入对应数字进行操作:
1
******************************************************
****播放列表管理****
1--将歌曲添加到主播放列表
2--将歌曲添加到普通放列表
3--通过歌曲id查询播放列表中的歌曲
4--将歌曲名称查询播放列表中的歌曲
5--修改播放列表中的歌曲
6--删除播放列表中的歌曲
7--显示播放列表中的所有歌曲
8--导出菜单
9--返回上一级菜单
******************************************************
请输入对应数字进行操作:
1
请输入要添加歌曲的数量:
1
请输入第1首歌曲的id:
001
请输入第1首歌曲的名称:
你好呀
请输入第1首歌曲的演唱者:
hello
主播放列表的歌曲为:
歌曲信息 [歌曲id:001, 歌曲名称:你好呀, 演唱者:hello]
[歌曲信息 [歌曲id:001, 歌曲名称:你好呀, 演唱者:hello]]-main
******************************************************
****播放列表管理****
1--将歌曲添加到主播放列表
2--将歌曲添加到普通放列表
3--通过歌曲id查询播放列表中的歌曲
4--将歌曲名称查询播放列表中的歌曲
5--修改播放列表中的歌曲
6--删除播放列表中的歌曲
7--显示播放列表中的所有歌曲
8--导出菜单
9--返回上一级菜单
******************************************************
请输入对应数字进行操作:
7
主播放列表歌曲为
歌曲信息 [歌曲id:001, 歌曲名称:你好呀, 演唱者:hello]
普通播放列表歌曲为:
歌曲信息 [歌曲id:001, 歌曲名称:你好呀, 演唱者:hello]
4
请输入要搜索的歌曲名称:
你好呀
歌曲信息 [歌曲id:001, 歌曲名称:你好呀, 演唱者:hello]
搜索成功
9
***************************************
****主菜单*****
1--播放列表管理
2--播放器管理
0--退出
***************************************
请输入对应数字进行操作:
2
******************************************************
****播放器管理****
1--向播放器添加播放列表
2--从播放器删除播放列表
3--通过名字查询播放列表信息
4--显示所有播放列表名称
9--返回上一级菜单
******************************************************
请输入对应数字进行操作:
1
4
4-[]
main-[歌曲信息 [歌曲id:001, 歌曲名称:你好呀, 演唱者:hello]]
3
请输入要查询的播发列表名称:
main
查询列表成功
[歌曲信息 [歌曲id:001, 歌曲名称:你好呀, 演唱者:hello]]
9
******************************************************
****播放列表管理****
1--将歌曲添加到主播放列表
2--将歌曲添加到普通放列表
3--通过歌曲id查询播放列表中的歌曲
4--将歌曲名称查询播放列表中的歌曲
5--修改播放列表中的歌曲
6--删除播放列表中的歌曲
7--显示播放列表中的所有歌曲
8--导出菜单
9--返回上一级菜单
******************************************************
请输入对应数字进行操作:
9
***************************************
****主菜单*****
1--播放列表管理
2--播放器管理
0--退出
***************************************
详细设计
类
歌曲类(Song)
播放列表类(PlayList)
播放器类(PlayListCollection)
测试类(TestDemo)
歌曲类(Song)
属性:
歌曲id(id)、歌曲名(name)、演唱者(singer)、均为字符串类型
方法:
构造方法
getter 和 setter方法
hashCode()和equals()方法
toString()方法
播放列表类(PlayList)
属性:
播放列表名称(playListName):字符串类型
播放列表中的歌曲集合(musicList):List类型
方法:
构造方法
getter和setter方法
将歌曲添加到播放列表: public void addToPlayList(Song song);
显示播放列表中所有歌曲:public void displayAllSong();
通过id查询歌曲:public Song searchSongById(String id);
通过名称查询歌曲: public Song searchSongByName(String n);
修改歌曲:public void updateSong(String id,Song song);
从播放列表(通过id)删除歌曲:public void deleteSong(String id);
导出所有歌曲
播放器类(PlayListCollection)
属性:
存放播放列表的集合(playListMap): Map
方法
构造方法
getter和setter方法
添加播放列表:public void addPlayList(PlayList playList);
删除播放列表:public void deletePlayList(PlayList playList);
通过名字查询:public PlayList searchPlayListByName(String playListName);
显示所有播放列表名称:public void displayPlayListName();
代码实现
歌曲类
Song.java
package player;
/**
* @author Liu Awen Email:willowawen@gmail.com
* @create 2018-12-21 2:19 PM
*/
//歌曲类
public class Song {
private String id;// 歌曲id
private String name;// 歌曲名
private String singer;// 演唱者
//构造方法
public Song() {
}
public Song(String id, String name, String singer) {
super();
this.id = id;
this.name = name;
this.singer = singer;
}
//getter和setter方法
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;
}
//hashCode()和equals()方法
@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 == null)
return false;
if (getClass() != obj.getClass())
return false;
Song other = (Song) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (singer == null) {
if (other.singer != null)
return false;
} else if (!singer.equals(other.singer))
return false;
return true;
}
//toString方法
@Override
public String toString() {
return "歌曲信息 [歌曲id:" + id + ", 歌曲名称:" + name + ", 演唱者:" + singer + "]";
}
}
播放器类
PlayListCollection.java
package player;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
import java.util.*;
/**
* @author Liu Awen Email:willowawen@gmail.com
* @create 2018-12-21 2:22 PM
*/
//播放器类
public class PlayListCollection {
//存放播放列表的集合
static Map<String,Object> playListMap=new HashMap<String,Object>();
static List<Song> list=new ArrayList();
//构造方法
public PlayListCollection() {
}
//添加播放列表
public void addPlayList(PlayList playList) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入要添加的播放列表名称:");
String key=playList.setPlayListname(sc.next());
List value=playList.getMainList();
playListMap.put(key, value);
//sc.close();
Set<Entry<String,Object>>entrySet=playListMap.entrySet();
//打印输出key-value的值 通过entrySet方法得到key-value
for(Entry<String,Object>entry:entrySet) {
// entry.getValue();
// entry.getKey();
System.out.println(entry.getKey()+"-"+entry.getValue());
}
}
//删除播放列表
public void deletePlayList(PlayList playList) {
Scanner sc=new Scanner(System.in);
//通过输入的列表名称删除播放列表
System.out.println("请输入要删除的播放列表名称:");
if(playListMap.containsKey(sc.next())) {
//如果列表有这个名称,则进行删除操作
playListMap.remove(sc.next());
System.out.println("删除列表成功");
}
else {
System.out.println("无此播放列表");
}
}
//通过名字查询
public PlayList searchPlayListByName(String playListName) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入要查询的播发列表名称:");
String key=sc.next();
//通过输入的列表名称删除播放列表
if(playListMap.containsKey(key)) {
//如果列表有这个名称,则进行删除操作
if(((List)(playListMap.get(key))).size()==0) {
//如果为空表
System.out.println("该列表为空");
}else {
System.out.println("查询列表成功");
System.out.println(playListMap.get(key));
}
}else {
System.out.println("无此播放列表");
}
return null;
}
//显示所有播放列表名称
public void displayPlayListName() {
Set<Entry<String,Object>>entrySet=playListMap.entrySet();
System.out.println("找到以下列表");
for(Entry<String,Object>entry:entrySet) {
System.out.println(entry.getKey());
}
}
}
播放列表类
PlayList.java
package player;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
/**
* @author Liu Awen Email:willowawen@gmail.com
* @create 2018-12-21 2:21 PM
*/
//播放列表类
public class PlayList {
private String playListname;// 播放列表名称
public List musicList = new ArrayList();// 播放列表中的歌曲集合
public PlayListCollection p = new PlayListCollection();
public List mainList = new ArrayList();// 主播放列表
public String mainName;
// 构造方法
public PlayList() {
}
public PlayList(String playListname, List musicList) {
super();
this.playListname = playListname;
this.musicList = musicList;
}
// getter和setter方法
public String getPlayListname() {
return playListname;
}
public PlayListCollection getP() {
return p;
}
public void setP(PlayListCollection p) {
this.p = p;
}
public List getMainList() {
return mainList;
}
public void setMainList(List mainList) {
this.mainList = mainList;
}
public String getMainName() {
return mainName;
}
public String setMainName(String mainName) {
return this.mainName = mainName;
}
public String setPlayListname(String playListname) {
return this.playListname = playListname;
}
public List getMusicList() {
return musicList;
}
public void setMusicList(List musicList) {
this.musicList = musicList;
}
// 将歌曲添加到播放列表
public void addToPlayList(Song song, boolean state) {
Scanner sc = new Scanner(System.in);
if (state) {// 如果点击的是添加到主列表的操作
String key = setMainName("main");
System.out.println("请输入要添加歌曲的数量:");
int n = sc.nextInt();// 获取歌曲的数量,从而做几次循环
int i = 0;
while (i < n) {
// 每次创建一个对象,让Song的对象产生不同的id
Song song1 = new Song();
System.out.println("请输入第" + (i + 1) + "首歌曲的id:");
song1.setId(sc.next());
System.out.println("请输入第" + (i + 1) + "首歌曲的名称:");
song1.setName(sc.next());
System.out.println("请输入第" + (i + 1) + "首歌曲的演唱者:");
song1.setSinger(sc.next());
// 将歌曲添加到播放列表
musicList.add(song1);
// 使用ArrayList实现一个Key对应一个ArrayList,实现一对多
((List) p.playListMap.get(key)).add(song1);
i++;
}
System.out.println("主播放列表的歌曲为:");
Iterator it = p.playListMap.values().iterator();
while (it.hasNext()) {
Iterator it2 = ((List) it.next()).iterator();
while (it2.hasNext()) {
System.out.println(it2.next());
}
}
Set<Entry<String, Object>> entrySet = p.playListMap.entrySet();
// 打印输出key-value的值,通过entrySet方法得到key-value
for (Entry<String, Object> entry : entrySet) {
// entry.getKey();
// entry.getValue();
System.out.println(entry.getValue() + "-" + entry.getKey());
}
new TestDemo().playListMenu();
}
/*
* 当state为false时,点击的是普通列表的操作
*/
System.out.println("请输入你要添加的列表名称:");
String s = sc.next();
if (new PlayListCollection().playListMap.isEmpty())
System.out.println("还没有创建列表");
// 判断是否存在此列表
if (!new PlayListCollection().playListMap.containsKey(s)) {
System.out.println("列表不存在");
new TestDemo().playMenu();
} else {
System.out.println("请输入要添加歌曲的数量:");
int n = sc.nextInt();// 获取歌曲的数量,从而做几次循环
int i = 0;
while (i < n) {
// 每次创建一个对象,让Song的对象产生不同的id
Song song1 = new Song();
System.out.println("请输入第" + (i + 1) + "首歌曲的id");
song1.setId(sc.next());
System.out.println("请输入第" + (i + 1) + "首歌曲的名称");
song1.setName(sc.next());
System.out.println("请输入第" + (i + 1) + "首歌曲的演唱者");
song1.setSinger(sc.next());
// 将歌曲添加到播放列表
musicList.add(song1);
// 使用ArrayList实现一个Key对应一个ArrayList,实现一对多
((List) p.playListMap.get(s)).add(song1);
i++;
}
System.out.println("主播放列表的歌曲为:");
Iterator it = p.playListMap.values().iterator();
while (it.hasNext()) {
Iterator it2 = ((List) it.next()).iterator();
while (it2.hasNext()) {
System.out.println(it2.next());
}
}
Set<Entry<String, Object>> entrySet = p.playListMap.entrySet();
// 打印输出key-value的值,通过entrySet方法得到key-value
for (Entry<String, Object> entry : entrySet) {
// entry.getKey();
// entry.getValue();
System.out.println(entry.getValue() + "-" + entry.getKey());
}
new TestDemo().playListMenu();
}
}
// 显示播放列表中所有歌曲
public void displayAllSong() {
boolean flag=false;
//使用KeySet()
//1取得keySet
Set<String>keySet=p.playListMap.keySet();
//2遍历keySet
for(String key:keySet) {
if("main".equals(key)) {
flag=true;
System.out.println("主播放列表歌曲为");
Iterator it2=((List)(p.playListMap.get(key))).iterator();
while(it2.hasNext()) {
System.out.println(it2.next());
break;
}
Set<Entry<String,Object>>entrySet=p.playListMap.entrySet();
//打印输出key-value的值 通过entrySet方法得到key-value
for(Entry<String,Object>entry:entrySet) {
// entry.getValue();
// entry.getKey();
// System.out.println(entry.getKey()+"-"+entry.getValue());
// System.out.println(entry.getKey());//获取key的值
//3遍历keySet
for(String key2:keySet) {
if(entry.getKey().equals(key)) {
flag=true;
System.out.println("普通播放列表歌曲为:");
Iterator it3=((List)(p.playListMap.get(entry.getKey()))).iterator();
while(it3.hasNext()) {
System.out.println((Song)(it3.next()));
// System.out.println(it3.next());
}
break;
}
}
}
}
}
}
// 通过id查询歌曲
public Song searchSongById(String id) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入要搜索的歌曲id:");
String searchId=sc.next();
Song song=new Song();
boolean flag=false;
//通过entrySet方法得到key-value
Set<Entry<String,Object>>entrySet=p.playListMap.entrySet();
//打印输出key-value的值 通过entrySet方法得到key-value
for(Entry<String,Object>entry:entrySet) {
Set<String> keySet=p.playListMap.keySet();
//List的遍历,通过get(key)得到value因为value是List所以强转换成List类型。再用List遍历
Iterator it2=((List)(p.playListMap.get(entry.getKey()))).iterator();
while(it2.hasNext()) {
song=(Song)it2.next();
//将找到的数据转换成song,如果满足与输入结果相同,则返回这个结果
if(song.getId().equals(searchId)) {
flag=true;
System.out.println(song);
break;
}
}
}
if(flag)
System.out.println("搜索成功");
else {
System.out.println("无此歌曲id");
}
return song;
}
// 通过名称查询歌曲
public Song searchSongByName(String name) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入要搜索的歌曲名称:");
String searchName=sc.next();
Song song=new Song();
boolean flag=false;
//通过entrySet方法得到key-value
Set<Entry<String,Object>>entrySet=p.playListMap.entrySet();
//打印输出key-value的值 通过entrySet方法得到key-value
for(Entry<String,Object>entry:entrySet) {
Set<String>keySet=p.playListMap.keySet();
//List的遍历,通过get(key)得到value因为value是List所以强转换成List类型。再用List遍历
Iterator it2=((List)(p.playListMap.get(entry.getKey()))).iterator();
while(it2.hasNext()) {
song=(Song)it2.next();
//将找到的数据转换成song,如果满足与输入结果相同,则返回这个结果
if(song.getName().equals(searchName)){
flag=true;
System.out.println(song);
break;
}
}
}
if(flag)
System.out.println("搜索成功");
else {
System.out.println("无此歌曲名称");
}
return song;
}
// 修改歌曲
public void updateSong(String id, Song song) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入要修改的歌曲:");
String searchId=sc.next();
song=new Song();
boolean flag=false;
Set<Entry<String,Object>>entrySet=p.playListMap.entrySet();
for(Entry<String,Object>entry:entrySet) {
Set<String>keySet=p.playListMap.keySet();
Iterator it2=((List)(p.playListMap.get((entry).getKey()))).iterator();
while(it2.hasNext()) {
song=(Song)it2.next();
if(song.getId().equals(searchId)) {
flag=true;
((List)(p.playListMap.get(entry.getKey()))).remove(song);
System.out.println("请输入修改后的歌曲名称:");
song.setName(sc.next());
System.out.println("请输入修改后的歌曲演唱者:");
song.setSinger(sc.next());
System.out.println(song);
break;
}
}
}
if(flag)
System.out.println("修改成功");
else {
System.out.println("无此歌曲id");
}
}
// 从播放列表删除歌曲
public void deleteSong(String id) {
Scanner sc=new Scanner(System.in);
String searchId=sc.next();
Song song=new Song();
boolean flag=false;
Set<Entry<String,Object>>entrySet=p.playListMap.entrySet();
for(Entry<String,Object>entry:entrySet) {
Set<String>keySet=p.playListMap.keySet();
Iterator it2=((List)(p.playListMap.get(entry.getKey()))).iterator();
while(it2.hasNext()) {
song=(Song)it2.next();
if(song.getId().equals(searchId)) {
flag=true;
((List)(p.playListMap.get(entry.getKey()))).remove(song);
break;
}
}
}
if(flag)
System.out.println("删除歌曲成功");
else {
System.out.println("无此歌曲");
}
}
public void outPut() {
System.out.println("为输入导出的歌单命名:");
Scanner sc=new Scanner(System.in);
//创建File文件song.txt
File file=new File(sc.next()+".txt");
if(!file.exists()) {//判断文件是否存在
System.out.println("创建成功");
try {
file.createNewFile();
PrintStream ps=System.out;//临时存一下
System.setOut(new PrintStream(file));//将system.out的内容打印到.txt
this.displayAllSong();
System.setOut(ps);//设置回标准输入流
new TestDemo().playListMenu();
}catch(FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
System.out.println("文件名已存在");
outPut();
}
}
}
测试
运行 操作
测试类
TestDemo.java
package player;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
/**
* @author Liu Awen Email:willowawen@gmail.com
* @create 2018-12-21 2:24 PM
*/
//测试类
public class TestDemo {
public static PlayListCollection p = new PlayListCollection();
public TestDemo() {
}
// 测试歌曲类
public void testSong() {
Scanner nu = new Scanner(System.in);
System.out.println("请输入要添加歌曲的数量:");
int j = nu.nextInt();
Scanner console = new Scanner(System.in);
Map<String, Song> songMap = new HashMap<String, Song>();
int a = 0;
while (a < j) {
System.out.println("请输入第" + (a + 1) + "首歌曲:");
System.out.println("请输入歌曲编号:");
String id = console.next();
// 判断商品编号id是否存在
if (songMap.containsKey(id)) {
System.out.println("该歌曲编号已经存在!请重新输入!");
continue;
}
System.out.println("请输入歌曲的名称:");
String name = console.next();
System.out.println("请输入此歌曲的演唱者:");
String singer = console.next();
Song song = new Song(id, name, singer);
// 将歌曲信息添加到HashMap中
songMap.put(id, song);
a++;
}
// 遍历Map,输出歌曲信息
System.out.println("歌曲的全部信息为:");
Iterator<Song> itSong = songMap.values().iterator();
while (itSong.hasNext()) {
System.out.println(itSong.next());
}
}
// 测试播放列表类
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("请输入对应数字进行操作:");
// 从键盘中接收数据
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("0")) {// 扫描到0就退出循环
int n = sc.nextInt();
switch (n) {
case 1:
// 显示播放器列表管理
new TestDemo().playListMenu();
break;
case 2:
// 播放器管理
new TestDemo().playMenu();
break;
case 0:
break;
default: //判断是否输入选项中的数字
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("请输入对应数字进行操作:");
// 从键盘中接收数据
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
PlayList playList = new PlayList();
Song song = new Song();
switch (n) {// a无任何意义
case 1:
// 将歌曲添加到主播放列表
playList.addToPlayList(song, true);
break;
case 2:
// 将歌曲添加到普通放列表
playList.addToPlayList(song, false);
break;
case 3:
// 通过歌曲id查询播放列表中的歌曲
playList.searchSongById("a");
break;
case 4:
// 将歌曲名称查询播放列表中的歌曲
playList.searchSongByName("a");
break;
case 5:
// 修改播放列表中的歌曲
playList.updateSong("a", song);
break;
case 6:
// 删除播放列表中的歌曲
playList.deleteSong("a");
break;
case 7:
// 显示播放列表中的所有歌曲
playList.displayAllSong();
break;
case 8:
// 导出菜单
playList.outPut();
break;
case 9:
// 返回上一级菜单
mainMenu();
break;
case 0:
break;
default: //判断是否输入选项中的数字
System.out.println("请输入选项中的数字:");
}
}
}
// 播放器菜单
public void playMenu() {
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("请输入对应数字进行操作:");
// 从键盘中接收数据
PlayList playList = new PlayList();
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
switch (n) {
case 1:
// 向播放器添加播放列表
new PlayListCollection().addPlayList(new PlayList());
break;
case 2:
// 从播放器删除播放列表
new PlayListCollection().deletePlayList(playList);
break;
case 3:
// 通过名字查询播放列表信息
new PlayListCollection().searchPlayListByName("a");
break;
case 4:
// 显示所有播放列表名称
new PlayListCollection().displayPlayListName();
break;
case 9:
//返回上一级菜单
new TestDemo().playListMenu();
break;
case 0:
break;
default://判断是否输入选项中的数字
System.out.println("请输入选项中的数字:");
}
}
}
// 主流程实现
public void test() {
}
// 主方法
public static void main(String[] args) {
String key="main";
List value=new PlayList().getMainList();
p.playListMap.put(key,value);
new TestDemo().mainMenu();
}
}
参考资料
[1]-慕课网 Java工程师就业班 - Java 零基础入门-综合案例:播放器
【Java】集合综合案例 - 播放器管理的更多相关文章
- set集合综合案例
案例01:生成0-10之间5个不相等的数 方法1:使用list集合实现 import random list01 = [] for i in range(100): num01 = random.ra ...
- Collections集合工具类,集合嵌套,集合综合案例斗地主
1 Collections集合工具类 (可以对比Arrays工具类共同记忆) 常用方法: 例: import java.util.ArrayList; import java.util.Collect ...
- java 内省综合案例和Beanutils工具包
演示用eclipse自动生成 ReflectPoint类的setter和getter方法. 直接new一个PropertyDescriptor对象的方式来让大家了解JavaBean API的价值,先用 ...
- java web综合案例
1.采用的技术: bootstrap+jsp+servlet+三层架构(servlet,service,dao)+mysql 注意:mysql使用的是5.5版本,使用高版本会有很多问题.可以将5.5版 ...
- 躁!DJ 风格 Java 桌面音乐播放器
本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...
- java音频播放器
java音频播放器备份,支持wav,mp3 都是摘抄于网络,wav播放,mp3播放 播放wav版本 包: 不需要其他jar包 代码: package com; import javax.sound.s ...
- 基于JavaFX实现的音乐播放器
前言 这个是本科四年的毕业设计,我个人自命题的一个音乐播放器的设计与实现,其实也存在一些功能还没完全开发完成,但粗略的答辩也就过去了,还让我拿了个优秀,好开心.界面UI是参考网易云UWP版本的,即使这 ...
- 一个ssm综合小案例-商品订单管理----写在前面
学习了这么久,一直都是零零散散的,没有把知识串联起来综合运用一番 比如拦截器,全局异常处理,json 交互,RESTful 等,这些常见技术必须要掌握 接下来呢,我就打算通过这么一个综合案例把这段时间 ...
- android全功能音乐播放器、基于MVP-Clean + Weex + RxJava2 + Retrofit + Dagger2 + MTRVA的综合应用、图片滤镜处理等源码
Android仿微信朋友圈查看图片下拽返回. Android图片滤镜处理,相机滤镜处理效果源码 Android自定义View源码:一个水平的进度条 基于MVP-Clean + Weex + RxJav ...
随机推荐
- STL——容器(Set & multiset)的大小
1. set.size(); //返回容器中元素的数目 2. set.empty();//判断容器是否为空 empty() 是由一下代码实现的,可以发现,当长度为0时返回 false,以此判断容器为 ...
- sqli-labs less11-12(post型union注入)
less-11 post型union注入 过程: 输入admin admin 判断username password的闭合方式 对username查字段个数 ' union select 1,2# ' ...
- mysql-zerofill关键字
zerofill位数填充 mysql> create table shop( -> article int(4) unsigned zerofill default '0000' not ...
- Kafka客户端编程入门介绍
1.maven依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka ...
- Hbase各组件职责
Hbase各组件职责 Client职责 1.HBase有两张特殊表: .META.:记录了用户所有表拆分出来的的Region映射信息,.META.可以有多个Regoin -ROOT-:记录了.META ...
- 从苹果BigSur官网学点东西
从苹果BigSur官网学点东西 Awsome配色 这个 蓝紫渐变大底 + 简洁的 矩形状字块 + 粗细层次字形,看着就蛮舒服. 看看css配色: .section-hero div[data-comp ...
- SpringBoot从入门到精通教程(五)
上节,我们讲了 SpringBoot 如何使用MyBatis 今天我们讲讲 Springboot Logo自定义的问题, 我们在启动 SpringBoot 时,控制台会打印 SpringBoot Lo ...
- K8S构建1台master2台node+Harbor_笔记
部署环境: master.node:centos7虚拟机 网络使用本地网卡共享到VMnet1(仅主机),虚拟机使用VMnet1. 准备文件: CentOS-7-x86_64-Minimal-1810. ...
- 容器编排系统K8s之访问控制--用户认证
前文我们聊到了k8s的statefulset控制器相关使用说明,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14201103.html:今天我们来聊一下k8 ...
- ES标签搜索并解决评分排序问题
一.概述 需求: 最近在做一个新闻项目,有这样一个需求,如下: 用户根据视频内容手动创建标签,标签个数不限 在视频详情页提供根据标签推荐视频功能,即按本视频的标签进行搜索,标签匹配多的排在前面,匹配少 ...