import java.util.LinkedList;
import java.util.Scanner;
public class KTVByLinkedList {
public static void main(String[] args) {
System.out.println("---------------欢迎来到点歌系统---------------");
System.out.println("0.添加歌曲至列表");
System.out.println("1.将歌曲置顶");
System.out.println("2.将歌曲前移一位");
System.out.println("3.退出");
System.out.println("4.删除");
LinkedList lineUpList = new LinkedList();
addMusicList(lineUpList);
while(true) {
System.out.print("请输入要执行的操作序号:");
Scanner scan = new Scanner(System.in);
int command = scan.nextInt();
switch(command) {
case 0:
addMusic(lineUpList);
break;
case 1:
setTop(lineUpList);
break;
case 2:
setBefore(lineUpList);
break;
case 3:
exit();
break;
case 4:
deleteMusic(lineUpList);
break;
default:
System.out.println("--------------------------------------");
System.out.println("功能选择有误,请输入正确的功能序号!");
break;
}
System.out.println("当前歌曲列表:"+ lineUpList);
}
}
private static void addMusicList(LinkedList lineUpList) {
lineUpList.add("稻香");
lineUpList.add("夜曲");
lineUpList.add("夜的第七章");
lineUpList.add("听妈妈的话");
lineUpList.add("龙卷风");
lineUpList.add("初始歌曲列表:" + lineUpList);
}
private static void addMusic(LinkedList lineUpList) {
System.out.print("请输入要添加的歌曲名称:");
String musicName = new Scanner(System.in).nextLine();
lineUpList.addLast(musicName);
System.out.println("已添加歌曲:"+musicName);
}
private static void setTop(LinkedList lineUpList) {
System.out.print("请输入要置顶的歌曲名称:");
String musicName = new Scanner(System.in).nextLine();
int position =lineUpList.indexOf(musicName);
if(position<0) {
System.out.println("当前列表中没有输入的歌曲!");
}
else {
lineUpList.remove(musicName);
lineUpList.addFirst(musicName);
}
System.out.println("已将歌曲"+musicName+"置顶");
}
private static void setBefore(LinkedList lineUpList) {
System.out.print("请输入要置前的歌曲名称:");
String musicName = new Scanner(System.in).nextLine();
int position =lineUpList.indexOf(musicName);
if(position<0) {
System.out.println("当前列表中没有输入的歌曲!");
}
else if(position == 0) {
System.out.println("当前歌曲已在最顶部!");
}
else {
lineUpList.remove(musicName);
lineUpList.add(position -1, musicName);
}
System.out.println("已将歌曲"+musicName+"置前一位");
}
private static void deleteMusic(LinkedList lineUpList) {
System.out.print("请输入要删除的歌曲名称:");
String musicName = new Scanner(System.in).nextLine();
lineUpList.remove();
System.out.println("已删除歌曲:"+ musicName);
}
private static void exit() {
System.out.println("----------------退出-------------------");
System.out.println("您已退出系统");
System.exit(0);
}
}