【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需要有位置的選擇。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM