A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Mr.Ji

初级黑马

  • 黑马币:18

  • 帖子:11

  • 精华:0

© Mr.Ji 初级黑马   /  2014-5-6 17:13  /  1202 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我想定义一个可以计算程序运行时间的方法,想把每一个方法作为参数传递,但是不知道怎么写参数,希望大神指教。

import java.util.*;
public class Test11
{

        public static void main(String[] args)
        {
                // TODO Auto-generated method stub
                int[] arr1 = {32,435,46,50,7,54,64,5,6,868,9,234};//数组1
                bubbleSort(arr1);//冒泡排序
                printArray(arr1);//打印冒泡排序后的数组
               
                int[] arr2 = {3,5,645,324,46,2,46,67,578,65,23,71};//数组2
                selectSort(arr2); //选择排序
                printArray(arr2);
               
                int[] arr3 = {4,56,543,176,247,32,6,8,11,45,90,59};//数组3
                Arrays.sort(arr3);  //Arrays带有的排序方法快速排序,直接调用方法即可
                printArray(arr3);
        }


        public static long runTime(????????//怎么传进去)
        {
                long startTime=System.currentTimeMillis();//获取开始时间

                ????//调用一个方法

                long endTime=System.currentTimeMillis();//获取结束时间  

                System.out.println("程序运行时间: "+(endTime-startTime)+"ms");  
               
        }





就是把方法当参数传给计算时间程序。

8 个回复

倒序浏览
本帖最后由 曹冬明 于 2014-5-6 17:58 编辑

把方法封装成对象,然后把一个对象当做形参,然后用对象.方法就可以了
回复 使用道具 举报
为什么不直接在程序开始前计算下时间,程序结束后计算下时间,然后计算出所用时间呢?
  1. public class Test12 {

  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub

  4.                 long starttime=System.currentTimeMillis();
  5.                 try {
  6.                         Thread.sleep(5000);
  7.                 } catch (InterruptedException e) {
  8.                         // TODO Auto-generated catch block
  9.                         e.printStackTrace();
  10.                 }
  11.                 long endtime=System.currentTimeMillis();
  12.                 System.out.println(endtime-starttime);
  13.                
  14.         }
复制代码
回复 使用道具 举报
把方法封装成对象,创建对象,把对象当作参数传进去;
或者把排序单独写成静态方法,在一个类中直接调用;
回复 使用道具 举报
定义一个万能接口,
interface A{
public void wn();
}
然后传入给这个计算时间的方法
public static long runTime(A a)
        {

                long startTime=System.currentTimeMillis();//获取开始时间


a.wn();
                ????//调用一个方法

                long endTime=System.currentTimeMillis();//获取结束时间  

                System.out.println("程序运行时间: "+(endTime-startTime)+"ms");  
            
        }

这样就可以了
回复 使用道具 举报
曹冬明 发表于 2014-5-6 17:57
把方法封装成对象,然后把一个对象当做形参,然后用对象.方法就可以了

嗯嗯 懂了 谢谢~
回复 使用道具 举报
℡Bruce 发表于 2014-5-8 10:27
为什么不直接在程序开始前计算下时间,程序结束后计算下时间,然后计算出所用时间呢? ...

谢谢哈  辛苦了 ~
回复 使用道具 举报
362688114 发表于 2014-5-8 11:27
把方法封装成对象,创建对象,把对象当作参数传进去;
或者把排序单独写成静态方法,在一个类中直接调用; ...

谢谢~懂了~
回复 使用道具 举报
奇迹 发表于 2014-5-9 02:43
定义一个万能接口,
interface A{
public void wn();

谢谢        
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马