减少循环中的执行时间

时间:2017-04-20 15:00:59

标签: java execution-time

我有这样的代码:

  RandomAccessFile raf = new RandomAccessFile(new File("C:\\Users\\AhmadMaleki\\IdeaProjects\\Hello world\\src\\kish\\file1"), "r");

for (int i = 1 ; i < 1025 ; i++)
        {
            for (int j = 0; j < raf.length() - 4 ; j++)
            {
                raf.seek(j);
                byte[] b = new byte[5];
                raf.read(b);

                if (new String (b).equals(wordcount[i]))
                {
                    z[i]++;
                }
            }
        }

在此代码中raf.length()= 26841039,执行时间为4100分钟。 是否有减少运行时间的解决方案?(例如多线程,并行......)

1 个答案:

答案 0 :(得分:1)

如果开始切换你的循环,那么你不会读取相同的文件1024次。

for (int j = 0; j < raf.length() - 4 ; j++){
    for (int i = 1 ; i < 1025 ; i++){
      // Do your things here ... 
    }
}

然后明智地选择输入流。