设计一个定时器管理系统,可以动态启动、停止定时器,并能根据已失去的时长自动调整剩余的时间。
运行时间限制:1Sec
内存限制:无限制
输入:启动定时器:starttimmer: ID, time
举例:
starttimmer: 1, 1000
启动一个定时器,其ID为1,定时时长time为1000ms
注:定时器ID用例保证非负整数,定时时长一定为正整数
停止定时器:stoptimmer: ID
举例:
stoptimmer: 1
停止一个ID为1的定时器
注:定时器ID用例保证非负整数,如果停止的定时器ID不存在,则忽略。
逝去时长:elapse: time
举例:
elapse: 1000
时间逝去1000ms
注:用例保证时长一定为正整数
输入结束
end
输出:
按启动顺序输出还没有停止的定时器,如ID为1的定时器还有1000ms才结束
timer: 1, 1000
如果所有定时器都停止了,输出none
none
样例输入:
starttimer: 1, 1000
starttimer: 2, 2000
elapse: 1000
end
样例输出:timer: 2,1000
import java.util.HashMap;
import java.util.Scanner;
import java.util.Iterator;
public class test{
public static void main(String []args) {
Scanner inputScanner = new Scanner(System.in);
HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
while(inputScanner.hasNext()){
String str = inputScanner.nextLine();
String[] arr = str.split(":");
if("end".equals(arr[0])){
if(hashMap.isEmpty()){
System.out.print("none");
}
else{
Iterator it = hashMap.keySet().iterator();
while(it.hasNext()){
int key = (Integer)it.next();
int value = hashMap.get(key);
if(value>0){
System.out.print("timer:"+key+","+value);
}
}
}
System.exit(0);
}
String[] ch = arr[1].split(",");
if("starttimer".equals(arr[0])){
hashMap.put(Integer.valueOf(ch[0]), Integer.valueOf(ch[1]));
}
else if("stoptimer".equals(arr[0])){
hashMap.remove(arr[1]);
}
else{
Iterator it = hashMap.keySet().iterator();
while(it.hasNext()){
int key = (Integer)it.next();
int value = hashMap.get(key)-Integer.valueOf(arr[1]);
hashMap.put(key, value);
}
}
}
}
}