程序创建一个计时器,并使用它来测量创建和排序数组所花费的时间。我在日食中出现红色高光。评论中的进一步解释。

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()stopgetElapsedTime()方法。您需要一个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/

10-13 09:11