我有一个boolean
类型的数组:
boolean[] myBooleanArray = new boolean[24];
目前我是这样检查是否包含true:
Arrays.asList(myBooleanArray).contains(true);
这是检查布尔数组的最快方法吗?如果不是,那么执行此检查的最快方法是什么?
编辑:
我通过在Android 4.03三星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));
五次运行的时间排名,最快的排在第一位:
Between 5334 and 11584 ns:
for (boolean value : myBooleanArray) { if (value) { return true; } } return false;
Between 160542 and 171417 ns:
Arrays.asList(myBooleanArray).contains(true);
Between 191833 and 205750 ns:
Booleans.contains(myBooleanArray, true);
Arrays.asList(myBooleanArray)
会给你一个数组列表,而不是Boolean
类型的列表。该方法不应与原始类型的数组一起使用。 - Bhesh Gurung