递归使探险家变得缓慢

时间:2015-08-05 11:00:13

标签: android recursion

此代码检查mp3歌曲(使用递归)使我的浏览器非常慢 请建议我一个让它更快的方法

public static boolean getMp3s1(File dir){
            int h=0;
             File[] listFile = dir.listFiles();
             if(listFile!=null)
             for( int i=0; i< listFile.length; i++)
             {
                 if(listFile[i].isDirectory()==true)
                 getMp3s1(listFile[i]);
                 else
                 {
                     if(listFile[i].getName().endsWith(".mp3")==true||listFile[i].getName().endsWith(".MP3")==true)
                         h=1;
            }

          }
         if(h==1){
             h=0;
             return true;
        }
         else
             return false;

        }

1 个答案:

答案 0 :(得分:1)

在h = 1之后尝试打破你的循环;它可以加快一点。 像这样吼叫:

public static boolean getMp3s1(File dir){
        int h=0;
         File[] listFile = dir.listFiles();
         if(listFile!=null)
         for( int i=0; i< listFile.length; i++)
         {
             if(listFile[i].isDirectory()==true)
             getMp3s1(listFile[i]);
             else
             {
                 if(listFile[i].getName().endsWith(".mp3")==true||listFile[i].getName().endsWith(".MP3")==true)
                    {
                      h=1;
                     break;
                    }
        }

      }
     if(h==1){
         h=0;
         return true;
    }
     else
         return false;

    }

编辑: 正如我从你的代码逻辑中看到的那样,你似乎可以跳过getMp3s1(listFile [i]);太