【Java学习之路---1】List的ArrayList和LinkedList的KTV点歌系统修改

本代码是参考书籍敲出 ,加入了部分自己的东西让程序完善一些,谢谢!!!

KTVArrayList代码:

 1 import java.util.Scanner;
 2 import java.util.ArrayList;
 3 
 4 public class KTVByArrayList {
 5 
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         // TODO Auto-generated method stub
 9                 System.out.println("----------------欢迎来到点歌界面---------------------");
10                 System.out.println("0.添加歌曲至列表");
11                 System.out.println("1.将歌曲置顶");
12                 System.out.println("2.将歌曲前移一位");
13                 System.out.println("3.退出");
14                 ArrayList linkedupList=new ArrayList();
15                 addMusics(linkedupList);
16                 while(true) {
17                     System.out.println("当前歌曲列表:"+linkedupList);
18                     System.out.print("请输入你需要执行的指令:");
19                     try{int por=new Scanner(System.in).nextInt();
20                     
21                     switch (por) {
22                     case 0:
23                         addMusic(linkedupList);
24                         break;
25                     case 1:
26                         topMusics(linkedupList);
27                         break;
28                     case 2:
29                         oneMusics(linkedupList);
30                         break;
31                     case 3:
32                         breakMusics();
33                     default:
34                         System.out.println("你输入的指令错误!!!");
35                         break;
36                     }
37                     }catch (Exception e) {
38                         System.out.println("输入的指令有误,应该输入整数错误为:"+e);// TODO: handle exception
39                     }
40                 }
41                 
42                 
43             }
44             //随机添加歌曲
45             private static void addMusics(ArrayList lineupList) {
46                 lineupList.add("稻香");
47                 lineupList.add("双节棍");
48                 lineupList.add("龙拳");
49                 lineupList.add("青花瓷");
50                 lineupList.add("告白气球");
51                 lineupList.add("手写的从前");
52                 System.out.println("现已说默认添加歌曲!!!");
53             }
54             //0.手动添加歌曲到列表
55             private static void addMusic(ArrayList lineupList) {
56                 System.out.println("请输入你要添加的歌曲名字");
57                 String a=new Scanner(System.in).nextLine();
58                 lineupList.add(a);
59                 System.out.println("歌曲添加完成");
60             }
61             //1.将歌曲置顶
62             private static void topMusics(ArrayList lineupList) {
63                 System.out.println("请输入你要置顶的歌曲名字");
64                 Object a=new Scanner(System.in).nextLine();
65                 if(lineupList.equals(a)) {
66                     int s=lineupList.indexOf(a);
67                     lineupList.remove(s);
68                     lineupList.add(0,a);
69                     System.out.println("歌曲置顶成功!!");
70                 }else {
71                     System.out.println("该歌曲不存在!!!");
72                 }
73             }
74             //2.将歌曲上移一位
75             private static void oneMusics(ArrayList lineupList) {
76                 System.out.println("请输入你要置顶的歌曲名字");
77                 Object a=new Scanner(System.in).nextLine();
78                 if(lineupList.equals(a)) {
79                     int s=lineupList.indexOf(a);
80                     if(s>0) {
81                         lineupList.remove(s);
82                         lineupList.add(s-1,a);
83                         System.out.println("歌曲上移一位成功!!!");
84                     }else {
85                         System.out.println("该歌曲已经在首位!!!");
86                     }
87                 }else {
88                     System.out.println("该歌曲不存在!!!");
89                 }
90             }
91             private static void breakMusics() {
92                 System.out.println("退出成功!!!");
93                 System.exit(0);
94             }
95 }

其中最重要的是异常的处理,没有异常处理,就会在误输入时导致程序奔溃。

KTVLinkedList代码:

import java.util.LinkedList;
import java.util.Scanner;
import java.lang.Exception;
public class KTVByLinkedList {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("----------------欢迎来到点歌界面---------------------");
        System.out.println("0.添加歌曲至列表");
        System.out.println("1.将歌曲置顶");
        System.out.println("2.将歌曲前移一位");
        System.out.println("3.退出");
        LinkedList linkedupList=new LinkedList();
        addMusics(linkedupList);
        while(true) {
            System.out.println("当前歌曲列表:"+linkedupList);
            System.out.print("请输入你需要执行的指令:");
            try{int por=new Scanner(System.in).nextInt();
            
            switch (por) {
            case 0:
                addMusic(linkedupList);
                break;
            case 1:
                topMusics(linkedupList);
                break;
            case 2:
                oneMusics(linkedupList);
                break;
            case 3:
                breakMusics();
            default:
                System.out.println("你输入的指令错误!!!");
                break;
            }
            }catch (Exception e) {
                System.out.println("输入的指令有误,应该输入整数错误为:"+e);// TODO: handle exception
            }
        }
        
        
    }
    //随机添加歌曲
    private static void addMusics(LinkedList lineupList) {
        lineupList.add("稻香");
        lineupList.add("双节棍");
        lineupList.add("龙拳");
        lineupList.add("青花瓷");
        lineupList.add("告白气球");
        lineupList.add("手写的从前");
        System.out.println("现已说默认添加歌曲!!!");
    }
    //0.手动添加歌曲到列表
    private static void addMusic(LinkedList lineupList) {
        System.out.println("请输入你要添加的歌曲名字");
        String a=new Scanner(System.in).nextLine();
        lineupList.add(a);
        System.out.println("歌曲添加完成");
    }
    //1.将歌曲置顶
    private static void topMusics(LinkedList lineupList) {
        System.out.println("请输入你要置顶的歌曲名字");
        Object a=new Scanner(System.in).nextLine();
        if(lineupList.equals(a)) {
            int s=lineupList.indexOf(a);
            lineupList.remove(s);
            lineupList.addFirst(a);
            System.out.println("歌曲置顶成功!!");
        }else {
            System.out.println("该歌曲不存在!!!");
        }
    }
    //2.将歌曲上移一位
    private static void oneMusics(LinkedList lineupList) {
        System.out.println("请输入你要置顶的歌曲名字");
        Object a=new Scanner(System.in).nextLine();
        if(lineupList.equals(a)) {
            int s=lineupList.indexOf(a);
            if(s>0) {
                lineupList.remove(s);
                lineupList.add(s-1,a);
                System.out.println("歌曲上移一位成功!!!");
            }else {
                System.out.println("该歌曲已经在首位!!!");
            }
        }else {
            System.out.println("该歌曲不存在!!!");
        }
    }
    private static void breakMusics() {
        System.out.println("退出成功!!!");
        System.exit(0);
    }

}

两个系统分别是运用了两种列表,其中的差距在于集合的add方法,ArrayList的add需要有位置的选择。

猜你喜欢

转载自www.cnblogs.com/October2018/p/10089381.html
今日推荐