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等,因而在学习过程中,写了一个小工具类,仅供各位小主参考! 多不闲言,直 ...
随机推荐
- 负载均衡服务之HAProxy https配置、四层负载均衡以及访问控制
前文我们聊了下haproxy的访问控制ACL的配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12817773.html:今天我们来聊一聊haproxy的h ...
- 震惊,某博主为吸引眼球拿出压箱底SQL总结,如果你没看那就吃亏了!(超级详细的SQL基础,你还不会的话就别学数据库了)
这里还有数据库相关的优质文章:快戳我,快戳我
- 数学--博弈论--巴什博奕(Bash Game)
终于也轮到我做游戏了,他们做了好几个月的游戏了. 巴什博弈: 两个人做游戏,取石子,一个人最多可以可以取M个,至少取1个,最后取完的赢. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先 ...
- Keepalived搭建LVS高可用性集群系统
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover ...
- idea 将项目托管到 Git 报错:Can't finish Gitee sharing process
在idea中报: Can't finish Gitee sharing processSuccssully created project 'dmp' on Gitee. but initial co ...
- uiautomatorviewer 出现安卓8.0级以上无法打开的解决方法
一..本人在使用Android自带的uiautomatorviewer工具来进行app元素定位时,出现了Android 9.0打开不了.出现了如下图错误提示: 经过网上的查阅,总结了几个解决的方法. ...
- idea配置tomcat运行参数,防止中文乱码和内存问题
点击选择 Edit Configurations... 修改 VM options ,参数在最后可直接复制 -Xms550m -Xmx1250m -Dfile.encoding=UTF-8
- 消息队列高手课 -笔记-Kafka高性能的几个关键点
总结下kafka 高性能的几个关键点是: 1:使用批量处理的方式 去提升系统的吞吐能力 2:基于磁盘文件高性能的顺序读写的特性来设计存储结构 3:利用操作系统的PageCache 来缓存数据 减少I ...
- ":-"的用法举例
例子1: #!/bin/bash A=aaa C=${A:-bbb} echo $C 输出结果:aaa 例子2: #!/bin/bash A="" C=${A:-bbb} echo ...
- ASP.NET Core on K8S学习之旅(13)Ocelot API网关接入
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使 ...