zoukankan      html  css  js  c++  java
  • 【Java】集合综合案例

    集合综合案例


    播放器管理

    • 需求分析

    • 项目演示

    • 详细设计

    • 代码实现

    重新搞一波 复习巩固

    简单记录 慕课网 imooc - Java工程师 - 综合案例:播放器

    模拟播放器管理

    需求分析

    • 播放列表管理
    • 播放器管理

    播放列表管理主要功能

    • 将歌曲添加到主播放列表

    • 将歌曲添加到平台播放列表

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

    • 通过歌曲名称查询播放列表中的歌曲

    • 修改播放列表中的歌曲

    • 删除播放列表中的歌曲

    • 显示播放列表中的所有歌曲

    • 导出歌单

    播放器管理主要功能

    • 向播放器添加播放列表

    • 向播放器删除播放列表

    • 通过名字查询播放列表信息

    • 显示所有播放列表名称

    项目演示

    D:Environmentsjdk-11.0.2injava.exe -javaagent:D:JavaideaIU-2019.2.winlibidea_rt.jar=6378:D:JavaideaIU-2019.2.winin -Dfile.encoding=UTF-8 -classpath D:IdeaProjectsimooc_Java_EngineeroutproductionCollectionComprehensiveCases 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 零基础入门-综合案例:播放器

  • 相关阅读:
    设置通过数字证书方式登录远程连接Linux服务器,禁止root账户远程密码方式远程连接服务器
    Windows server 2003 粘滞键后门+提权
    CVE-2017-7494复现 Samba远程代码执行
    SQL盲注学习-时间型
    SQL盲注学习-布尔型
    关于绿盟RSAS使用时遇到的问题
    SQL注入学习
    CentOS7,zabbix3.4通过,zabbix-Java-gateway监控Tomcat
    (转)输入pipt提示:AttributeError: 'module' object has no attribute 'HTTPSConnection'
    pip安装cx_Oracle报错:error code 1 in /tmp/pip-build-root/cx-Oracle
  • 原文地址:https://www.cnblogs.com/liuawen/p/12114607.html
Copyright © 2011-2022 走看看