程序创建一个计时器,并使用它来测量创建和排序数组所花费的时间。我在日食中出现红色高光。评论中的进一步解释。
public class StopWatch {
private double startTime;
private double endTime;
public void start() {
startTime = System.currentTimeMillis();
}
public void stop() {
endTime = System.currentTimeMillis();
}
public double getElapsedTime(endTime, startTime) {
return endTime - startTime;
}
}
测试班
import java.util.Arrays;
public class TestStopWatch {
Stopwatch.start();
int[] array = new int[1000000];
{
for (int i = 0; i < 999999; i++)
{
array[i] = (int) Math.random() * 100;
}
Arrays.sort(array);
}
Stopwatch.stop();
System.out.println(getElapsedTime());
}
最佳答案
您不能直接在TestStopWtach类中调用start()
,stop
和getElapsedTime()
方法。您需要一个StopWatch Object才能在不同的类中调用这些方法。
在TestStopWatch类中必须有一个公共的静态void main(String args [])方法或其他方法,您可以在这些方法上调用这些东西...
另外,您需要使用StopWatch Class对象调用方法调用。
接下来,您需要注意这两个类都位于同一个程序包下,以调用它们的方法,如下代码所示……
StopWatch类必须看起来像:
public class StopWatch {
private double startTime;
private double endTime;
public long start() {
startTime = System.currentTimeMillis();
return startTime;
}
public long stop() {
endTime = System.currentTimeMillis();
return endTime;
}
public double getElapsedTime(endTime, startTime) {
return endTime - startTime;
}
}
另外,通过更改方法start()和stop()的返回类型,在StopWatch类中进行一些更改。
TestStopWatch类必须看起来像:
import java.util.Arrays;
public class TestStopWatch {
public static void main(String args[]){
StopWatch sw=new StopWatch();
long p=sw.start(); // trying to call the start method in the previous class
// code to create and sort array
long q=sw.stop(); //stop method in previous class
// call getElapsedtime and print
System.out.println(sw.getElapsedTime((double)q,(double)p));
}
}
关于java - 计时器来测量数组排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26954045/