我有一个array条目的boolean:

boolean[] myBooleanArray = new boolean[24];

目前,我检查它是否包含真像这样:
Arrays.asList(myBooleanArray).contains(true);

这是检查 boolean 数组的最快方法吗?如果不是,执行此检查的最快方法是什么?

编辑:

通过在Android 4.03 Samsung S2设备上将其作为应用程序运行,我对您的答案中的方法进行了计时,如下所示:
boolean[] myBooleanArray = new boolean[24];

long startTime = System.nanoTime();
suggestedMethod(myBooleanArray);
long endTime = System.nanoTime();

long duration = endTime - startTime;
Log.i("timetest", Long.toString(duration));

在五次运行中的时间排名为第一,最快的是:
  • 在5334和11584 ns之间:
    for (boolean value : myBooleanArray) {
        if (value) {
            return true;
        }
    }
    return false;
    
  • 在160542和171417 ns之间:
    Arrays.asList(myBooleanArray).contains(true);
    
  • 在191833和205750 ns之间:
    Booleans.contains(myBooleanArray, true);
    
  • 最佳答案

    只是遍历数组

    for(boolean value: myBooleanArray){
      if(value){ return true;}
    }
    return false;
    

    关于java - 检查 boolean 数组是否包含true的最快方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13677872/

    10-10 19:22