Java-KTVByLinkedList模拟点歌工具
- 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);
- }
- }
Java-KTVByLinkedList模拟点歌工具的更多相关文章
- Rhino+envjs-1.2.js 在java运行网站js 工具类
java爬虫遇到个页面加密的东西,找了些资料学习学习 做了个java运行js的工具类,希望对大家有用,其中用到client(获取js)可以自行换成自己的client.主要是用了 Rhino就是Java ...
- Java实现模拟登录新浪微博
毕设题目要使用到新浪微博数据,所以要爬取新浪微博的数据.一般而言,新浪微博的爬虫有两种模式:新浪官方API和模拟登录新浪微博.两种方法的异同点和适用情况就无须赘述了.前辈的文章已经非常多了.写这篇文章 ...
- Java线程的并发工具类
Java线程的并发工具类. 一.fork/join 1. Fork-Join原理 在必要的情况下,将一个大任务,拆分(fork)成若干个小任务,然后再将一个个小任务的结果进行汇总(join). 适用场 ...
- 推荐6款常用的Java开源报表制作工具
JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表.JasperReports 支持PDF.HTML.XLS.CSV和XML文件输出格 ...
- 常用 Java 静态代码分析工具的分析与比较
常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...
- [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)
目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...
- http模拟请求工具
http模拟请求工具: postman(chrome应用) Request Maker(chrome插件) Request Maker(网站:http://www.requestmaker.com/) ...
- java中常用的工具类(一)
我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...
- Java学习-041-颜色工具类(RGB,HEX)
在日常的网页开发中,经常需要进行颜色数值获取.转换,例如获取红色,获取蓝色,获取绿色,RGB转十六进制颜色,十六进制颜色转RGB等,因而在学习过程中,写了一个小工具类,仅供各位小主参考! 多不闲言,直 ...
随机推荐
- 数据库SQL语言从入门到精通--Part 1--SQL语言概述
数据库从入门到精通合集(超详细,学习数据库必看) 一.SQL概述 关系数据库标准语言SQL(结构化查询语言). 结构化查询语言(Structured Query Language)简称SQL,是一种特 ...
- Redis服务器和客户端的通信
Redis客户端使用RESP(Redis序列化协议)与Redis服务器进行通信,RESP在位于TCP之上,而网络模型上客户端和服务器是保持的双工的连接.如图1 而一个简单的请求/响应的串行通信模型如下 ...
- 【Kafka】监控及运维——kafka-eagle
目录 简单介绍 概述 安装部署 一.环境要求 二.下载源码包并解压 三.准备数据库 四.修改配置文件 五.配置环境变量 六.启动kafka-eagle 七.成功运行 简单介绍 概述 Kafka-eag ...
- JAVA知识总结(一):概述
第一次写文章,有点小紧张,不过没关系,因为我面对的都是小白.好了废话少说,直接开始吧. 我主要说一下JAVA的发展和开发java的基本知识及JAVA的主要特性. 一.JAVA的主要特性: 1. 一方面 ...
- STM32 Bootloader基于ymodem传输协议串口IAP升级详解
硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 1 预备知识 2 Bootloader 2.1 启动流程 2.2 校验跳转地址是否有效 ...
- xml(4)
schema约束 dtd语法:<!ELEMENT 元素名称 约束> schema符合xml的语法,xml语句 一个xml中可以有多个schema,多个schema用名称空间区分(类似jav ...
- [hdoj5192] 树状数组
枚举所有的区间.对于确定的区间,假设最终的高度为h, 代价是max(∑(Hi−h),∑(h−Hj))(Hi>h,Hj≤h) 等价于max(∑Hi−cnt(i)∗h,cnt(j)∗h−∑Hj) ( ...
- SQL 选择列 IF表达式,Contains表达式的用法
因为业务需要需要使用到, 列中的字段或根据列值是否满足某一条件,进行输出.比如类似与 select if() ……from……:(但是SQL Server 没有 if 表达式) 比如,如果Scor ...
- flink入门学习
Flink学习笔记 一.简介 1.定义: 针对流数据和批数据的分布式处理引擎.它主要是由 Java 代码实现.. 2.应用场景: 流数据:把所有任务当成流来处理,处理观察和分析连续事件产生的数 ...
- Mysql常用sql语句(22)- insert 插入数据
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 终于讲完基础的查询语句了...这篇讲的就是插入数 ...