本文介绍了检查布尔数组是否包含true的最快方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 boolean
项的 array
:
boolean[] myBooleanArray = new boolean[24];
目前,我正在检查它是否包含true,如下所示:
Currently i check if it contains true like so:
Arrays.asList(myBooleanArray).contains(true);
这是检查布尔数组的最快方法吗?如果没有,执行此检查的最快方法是什么?
Is this the fastest way to check an array of boolean? If not, what is the fastest way to perform this check?
通过在Android 4.03 Samsung S2设备上将其作为应用程序运行,我对您的答案中的方法进行了计时,如下所示:
I timed the methods in your answers as follows by running it as an app on an Android 4.03 Samsung S2 device:
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));
在五次跑步中的时间排名是第一,速度最快:
Time ranking over five runs were, with fastest first:
-
在5334到11584 ns之间:
Between 5334 and 11584 ns:
for (boolean value : myBooleanArray) {
if (value) {
return true;
}
}
return false;
在160542和171417 ns之间:
Between 160542 and 171417 ns:
Arrays.asList(myBooleanArray).contains(true);
在191833和205750 ns之间:
Between 191833 and 205750 ns:
Booleans.contains(myBooleanArray, true);
推荐答案
只需遍历数组
for(boolean value: myBooleanArray){
if(value){ return true;}
}
return false;
这篇关于检查布尔数组是否包含true的最快方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!