1. import java.util.LinkedList;
  2. import java.util.Scanner;
  3. public class KTVByLinkedList {
  4. public static void main(String[] args) {
  5. System.out.println("---------------欢迎来到点歌系统---------------");
  6. System.out.println("0.添加歌曲至列表");
  7. System.out.println("1.将歌曲置顶");
  8. System.out.println("2.将歌曲前移一位");
  9. System.out.println("3.退出");
  10. System.out.println("4.删除");
  11. LinkedList lineUpList = new LinkedList();
  12. addMusicList(lineUpList);
  13. while(true) {
  14. System.out.print("请输入要执行的操作序号:");
  15. Scanner scan = new Scanner(System.in);
  16. int command = scan.nextInt();
  17. switch(command) {
  18. case 0:
  19. addMusic(lineUpList);
  20. break;
  21. case 1:
  22. setTop(lineUpList);
  23. break;
  24. case 2:
  25. setBefore(lineUpList);
  26. break;
  27. case 3:
  28. exit();
  29. break;
  30. case 4:
  31. deleteMusic(lineUpList);
  32. break;
  33. default:
  34. System.out.println("--------------------------------------");
  35. System.out.println("功能选择有误,请输入正确的功能序号!");
  36. break;
  37. }
  38. System.out.println("当前歌曲列表:"+ lineUpList);
  39. }
  40. }
  41. private static void addMusicList(LinkedList lineUpList) {
  42. lineUpList.add("稻香");
  43. lineUpList.add("夜曲");
  44. lineUpList.add("夜的第七章");
  45. lineUpList.add("听妈妈的话");
  46. lineUpList.add("龙卷风");
  47. lineUpList.add("初始歌曲列表:" + lineUpList);
  48. }
  49. private static void addMusic(LinkedList lineUpList) {
  50. System.out.print("请输入要添加的歌曲名称:");
  51. String musicName = new Scanner(System.in).nextLine();
  52. lineUpList.addLast(musicName);
  53. System.out.println("已添加歌曲:"+musicName);
  54. }
  55. private static void setTop(LinkedList lineUpList) {
  56. System.out.print("请输入要置顶的歌曲名称:");
  57. String musicName = new Scanner(System.in).nextLine();
  58. int position =lineUpList.indexOf(musicName);
  59. if(position<0) {
  60. System.out.println("当前列表中没有输入的歌曲!");
  61. }
  62. else {
  63. lineUpList.remove(musicName);
  64. lineUpList.addFirst(musicName);
  65. }
  66. System.out.println("已将歌曲"+musicName+"置顶");
  67. }
  68. private static void setBefore(LinkedList lineUpList) {
  69. System.out.print("请输入要置前的歌曲名称:");
  70. String musicName = new Scanner(System.in).nextLine();
  71. int position =lineUpList.indexOf(musicName);
  72. if(position<0) {
  73. System.out.println("当前列表中没有输入的歌曲!");
  74. }
  75. else if(position == 0) {
  76. System.out.println("当前歌曲已在最顶部!");
  77. }
  78. else {
  79. lineUpList.remove(musicName);
  80. lineUpList.add(position -1, musicName);
  81. }
  82. System.out.println("已将歌曲"+musicName+"置前一位");
  83. }
  84. private static void deleteMusic(LinkedList lineUpList) {
  85. System.out.print("请输入要删除的歌曲名称:");
  86. String musicName = new Scanner(System.in).nextLine();
  87. lineUpList.remove();
  88. System.out.println("已删除歌曲:"+ musicName);
  89. }
  90. private static void exit() {
  91. System.out.println("----------------退出-------------------");
  92. System.out.println("您已退出系统");
  93. System.exit(0);
  94. }
  95. }

Java-KTVByLinkedList模拟点歌工具的更多相关文章

  1. Rhino+envjs-1.2.js 在java运行网站js 工具类

    java爬虫遇到个页面加密的东西,找了些资料学习学习 做了个java运行js的工具类,希望对大家有用,其中用到client(获取js)可以自行换成自己的client.主要是用了 Rhino就是Java ...

  2. Java实现模拟登录新浪微博

    毕设题目要使用到新浪微博数据,所以要爬取新浪微博的数据.一般而言,新浪微博的爬虫有两种模式:新浪官方API和模拟登录新浪微博.两种方法的异同点和适用情况就无须赘述了.前辈的文章已经非常多了.写这篇文章 ...

  3. Java线程的并发工具类

    Java线程的并发工具类. 一.fork/join 1. Fork-Join原理 在必要的情况下,将一个大任务,拆分(fork)成若干个小任务,然后再将一个个小任务的结果进行汇总(join). 适用场 ...

  4. 推荐6款常用的Java开源报表制作工具

    JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表.JasperReports 支持PDF.HTML.XLS.CSV和XML文件输出格 ...

  5. 常用 Java 静态代码分析工具的分析与比较

    常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...

  6. [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)

    目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...

  7. http模拟请求工具

    http模拟请求工具: postman(chrome应用) Request Maker(chrome插件) Request Maker(网站:http://www.requestmaker.com/) ...

  8. java中常用的工具类(一)

    我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...

  9. Java学习-041-颜色工具类(RGB,HEX)

    在日常的网页开发中,经常需要进行颜色数值获取.转换,例如获取红色,获取蓝色,获取绿色,RGB转十六进制颜色,十六进制颜色转RGB等,因而在学习过程中,写了一个小工具类,仅供各位小主参考! 多不闲言,直 ...

随机推荐

  1. 数据库SQL语言从入门到精通--Part 1--SQL语言概述

    数据库从入门到精通合集(超详细,学习数据库必看) 一.SQL概述 关系数据库标准语言SQL(结构化查询语言). 结构化查询语言(Structured Query Language)简称SQL,是一种特 ...

  2. Redis服务器和客户端的通信

    Redis客户端使用RESP(Redis序列化协议)与Redis服务器进行通信,RESP在位于TCP之上,而网络模型上客户端和服务器是保持的双工的连接.如图1 而一个简单的请求/响应的串行通信模型如下 ...

  3. 【Kafka】监控及运维——kafka-eagle

    目录 简单介绍 概述 安装部署 一.环境要求 二.下载源码包并解压 三.准备数据库 四.修改配置文件 五.配置环境变量 六.启动kafka-eagle 七.成功运行 简单介绍 概述 Kafka-eag ...

  4. JAVA知识总结(一):概述

    第一次写文章,有点小紧张,不过没关系,因为我面对的都是小白.好了废话少说,直接开始吧. 我主要说一下JAVA的发展和开发java的基本知识及JAVA的主要特性. 一.JAVA的主要特性: 1. 一方面 ...

  5. STM32 Bootloader基于ymodem传输协议串口IAP升级详解

    硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 1 预备知识 2 Bootloader 2.1 启动流程 2.2 校验跳转地址是否有效 ...

  6. xml(4)

    schema约束 dtd语法:<!ELEMENT 元素名称 约束> schema符合xml的语法,xml语句 一个xml中可以有多个schema,多个schema用名称空间区分(类似jav ...

  7. [hdoj5192] 树状数组

    枚举所有的区间.对于确定的区间,假设最终的高度为h, 代价是max(∑(Hi−h),∑(h−Hj))(Hi>h,Hj≤h) 等价于max(∑Hi−cnt(i)∗h,cnt(j)∗h−∑Hj) ( ...

  8. SQL 选择列 IF表达式,Contains表达式的用法

    因为业务需要需要使用到, 列中的字段或根据列值是否满足某一条件,进行输出.比如类似与  select if()  ……from……:(但是SQL Server 没有 if 表达式) 比如,如果Scor ...

  9. flink入门学习

    Flink学习笔记 一.简介 1.定义: ​ 针对流数据和批数据的分布式处理引擎.它主要是由 Java 代码实现.. 2.应用场景: ​ 流数据:把所有任务当成流来处理,处理观察和分析连续事件产生的数 ...

  10. Mysql常用sql语句(22)- insert 插入数据

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 终于讲完基础的查询语句了...这篇讲的就是插入数 ...