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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 了无尘 于 2012-3-24 19:26 编辑

先贴代码

  1. public class Demo
  2. {
  3.        
  4.         public static void main(String[] args)
  5.         {
  6.        
  7.                 long curr, taken,curr1, taken1;
  8.                 curr = System.currentTimeMillis();
  9.                 for(int i = 0; i < 1000000; i++)
  10.                 {
  11.                         // 根据用户输入打印季节
  12.                         // 3 4 5春季 6 7 8夏季 9 10 11秋季 1 2 12冬季
  13.                        
  14.                         for (int season = 0; season < 14; season++)
  15.                         {
  16.                                 printSeason(season);
  17.                         }
  18.                 }
  19.                 taken = System.currentTimeMillis() - curr;
  20.                
  21.                 curr1 = System.currentTimeMillis();
  22.                 for(int i = 0; i < 1000000; i++)
  23.                 {
  24.                         // 根据用户输入打印季节
  25.                         // 3 4 5春季 6 7 8夏季 9 10 11秋季 1 2 12冬季
  26.                        
  27.                         for (int season = 0; season < 14; season++)
  28.                         {
  29.                                 printSeason2(season);
  30.                         }
  31.                 }
  32.                 taken1 = System.currentTimeMillis() - curr1;
  33.                
  34.                
  35.                 System.out.println("我的方法耗时为" + taken + "毫秒");
  36.                 System.out.println("老师方法耗时为" + taken1 + "毫秒");
  37.         }
  38.        
  39.         static void printSeason(int season)
  40.         {
  41.                 if ((season < 13) && (season > 0))
  42.                 {
  43.                         // 使1 2月份加上12保持月份连续性用以快速区分
  44.                         int temp = ((season > 0) && (season < 3)) ? season += 12 : season;
  45.                         if (temp > 11)
  46.                         {
  47.                                 System.out.println("" + ((season == 12) ? season : (season % 12)) + "月是冬季");
  48.                         }
  49.                         else if (temp > 8)
  50.                         {
  51.                                 System.out.println("" + season + "月是秋季");
  52.                         }
  53.                         else if (temp > 5)
  54.                         {
  55.                                 System.out.println("" + season + "月是夏季");
  56.                         }
  57.                         else
  58.                         {
  59.                                 System.out.println("" + season + "月是春季");
  60.                         }
  61.                 }
  62.                 else
  63.                 {
  64.                         System.out.println("" + season + "月不存在");
  65.                 }
  66.         }
  67.        
  68.         static void printSeason2(int season)
  69.         {
  70.                 if(season > 12 || season < 1)
  71.                         System.out.println("" + season + "月不存在");
  72.                 else if(season >= 3 && season <= 5)
  73.                         System.out.println("" + season + "月是春季");
  74.                 else if(season >= 6 && season <= 8)
  75.                         System.out.println("" + season + "月是夏季");
  76.                 else if(season >= 9 && season <= 11)
  77.                         System.out.println("" + season + "月是秋季");
  78.                 else
  79.                         System.out.println("" + season + "月是冬季");
  80.                
  81.         }
  82. }
复制代码
我的方法耗时为65692毫秒
老师方法耗时为66062毫秒
这个是运行100万次的

我的方法耗时为6538毫秒
老师方法耗时为6544毫秒
这是10万次的

我的方法耗时为744毫秒
老师方法耗时为665毫秒
这是1万次的

多次测试,时间基本没有变化,不管是1万10万还是100万,1万的肯定就是老师的快,100万的肯定就是我的快。。。俺迷茫了
不过我的这个printSeason方法肯定还能在提高效率的,不过本来就是换种思路和写法,呵呵

评分

参与人数 1技术分 +2 收起 理由
职业规划-刘倩老师 + 2 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马