0

嗨,我在大学有一个小组项目。我和我的小组成员需要创建一个网站。我们已经这样做了,今年我们学习了 Java 编程语言。我的讲师给了我们另一项任务,即使用 Java 将我们的网站从静态升级到动态,尤其是使用 JSP(JavaServer Pages)。

我负责为我们的网站为这项新任务创建统计报告。到目前为止,我能够从互联网上找到如何计算平均值、总和和中位数,尤其是从这个论坛。但是我无法找到如何计算管理员根据 String ArrayList 回答用户问题所花费的时间。

那么有人可以帮我解决这个问题吗?我对这个 Java 很陌生,任何帮助将不胜感激。

我很抱歉我的语法,英语不是我的主要语言。提前致谢!

4

1 回答 1

1

使用线程来保持时间:

public class KeepingTime
{
    private volatile int timeTaken;
    private Thread timekeeper;

    public KeepingTime()
    {
        timekeeper = new Thread(new Runnable(){
            public void run()
            {
                try
                {
                    while(true)
                    {
                        Thread.sleep(1000);
                        timeTaken++;
                        if(Thread.interrupted())
                            return;
                    }
                }
                catch(InterruptedException e)
                {
                    return;
                }
            }    //end run
        }); //end thread
        timekeeper.start();
    }    //end constructor

    public void stop()
    {
        timekeeper.interrupt();
    }

    public int timeTaken()
    {
        return timeTaken;
    }
}

然后像这样使用它:

for(String question : questions)
{
    KeepingTime timer = new KeepingTime();
    //ask the question
    //wait until it is answered
    timer.stop();
    int timeTaken = timer.timeTaken();
}

请注意,我没有使用 Thread.stop() 因为它已被弃用。如果您运行大量线程,这可能会不一致。

于 2013-03-18T18:24:05.667 回答