我有一个问题,希望需要一个简单明了的解决方案,我似乎想不出来。好的,所以我在玩斐波那契序列:我想提示用户输入一个整数。然后它将运行该序列,将每个元素添加到ArrayList中。然后,我想使用计时器将数组列表中的每个元素显示到控制台--每秒显示序列中的每个元素--我用一个简短的方法来完成。
public class Sequence {
static int seconds = 0;
static Timer timer;
static ArrayList<Integer> fibList = new ArrayList<Integer>();
public static void main(String[] args) {
boolean noError = true;
Scanner sc = new Scanner(System.in);
//will store sum of evens
int tmp = 0;
//timer variables
int delay = 1000;
int period = 1000;
timer = new Timer();
//enter user input, try catch to eliminate invalid input
do{
try{
System.out.println("Please enter a number: ");
int input = Integer.parseInt(sc.nextLine());
//add to arraylist from user input
for (int i=0; i<=input; i++){
fibList.add(fib(i));
//sum even numbers
if(fib(i)%2 == 0){
tmp += fib(i);
}
}
}catch(Exception e){
System.out.println("Not a valid Number!");
}
noError = false;
}while(noError);
System.out.println(fibList);
System.out.println("Sum of Even Numbers is: "+tmp);
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
System.out.print(fibList.get(setInterval())+ ",");
}
}, delay, period);
}
//This is where I count up through my ArrayList and probably cause the Error
//counts up for every element through the array
public static final int setInterval() {
if (seconds >= fibList.size())
timer.cancel();
return seconds++;
}
//does fibonacci sequence
public static int fib(int n) {
if (n < 2) {
return n;
}
else {
return fib(n-1)+fib(n-2);
}
我想用Java模拟TCP。 我找到了System.nanotime()方法,但是没有方法可以在指定的微秒或纳秒内阻塞线程。如果有这样的方法,那么请让我知道。system.nanotime()只是给出了以纳秒为单位的相对时间间隔。 我可以使用System.nanotime()在使用busy-loop的线程中执行纳秒级延迟,但这将浪费CPU时间,而CPU本来可以用于接收数据线程或处理线程。 另一个令人
我正在尝试编写一个简短的Java程序,它使用多个线程来创建计时器。当计时器达到7秒或15秒时,它将打印一条消息。 我需要创建一个共享计数器。时间打印线程将计数器递增1,并从执行开始每秒打印其值。一个消息打印线程每15秒打印一条消息,另一个消息打印线程每7秒打印一条不同的消息。这两个线程需要在不修改时间打印线程的情况下完成。 所有这些线程都需要共享每秒更新的计数器对象。每次更新计数器对象时,时间打印
问题内容: 当日期中包含EDT / EST时,我们是否有任何API可以验证日期是否有效。我已经尝试过用Java Java SimpleDateFormat进行Joda,但是我无法解析日期。 下面是我正在获取“ 2017/09/25 16:18:15.099 -0400 EDT”的示例格式。 任何帮助表示赞赏。 谢谢,sk 问题答案: 您是否尝试阅读文档? 从以下文档中: 区域名称 :这将输出时区I
我在试着验证Mockito的记录器信息。 但是,我不能运行我的junit类来覆盖所有代码行。 你知道为什么吗? 需要但未调用:mockappender.doappend();->在AppTest.TestWithover3Element(AppTest.java:52)实际上,与这个模拟没有任何交互。
本文向大家介绍Java定时器Timer简述,包括了Java定时器Timer简述的使用技巧和注意事项,需要的朋友参考一下 概述 主要用于Java线程里指定时间或周期运行任务。Timer是线程安全的,但不提供实时性(real-time)保证。 构造函数 Timer() 默认构造函数。 Timer(boolean) 指定关联线程是否作为daemon线程。 Timer(String) 指定关联线程的名称。
我试图用这个功能构建一个命令行界面:如果用户插入一个输入(在本例中是一个整数)需要15秒以上的时间,该函数会做出一个默认选择(0)。下面的代码是我到目前为止写的,它工作正常。 问题是我想添加一个新功能:如果用户写错了数字( 然而,当控制台打印消息时,计时器应该仍然运行,并在15秒后结束此循环,以防用户继续插入错误的数字。如果用户最终得到一个正确的数字,它应该立即打破循环。 这是我的代码,但我对如何