当前位置: 首页 > 面试题库 >

检查布尔数组是否包含true的最快方法

白嘉志
2023-03-14
问题内容

我有一个arrayboolean条目:

boolean[] myBooleanArray = new boolean[24];

目前,我正在检查它是否包含真像这样:

Arrays.asList(myBooleanArray).contains(true);

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

编辑:

通过在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));

在五次跑步中的时间排名最高,排名第一:

  1. 在5334和11584 ns之间:

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

    }
    return false;

  2. 在160542和171417 ns之间:

    Arrays.asList(myBooleanArray).contains(true);
    
  3. 在191833和205750 ns之间:

    Booleans.contains(myBooleanArray, true);
    

问题答案:

只是遍历数组

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


 类似资料:
  • 问题内容: 基本上,我大约有1,000,000个字符串,对于每个请求,我都必须检查一个String是否属于列表。 我担心性能,最好的方法是什么??哈希? 问题答案: 最好的选择是使用并通过方法检查集合中是否存在字符串。建立HashSet可以通过使用Object方法和进行快速访问。状态的Javadoc : 此类为基本操作(添加,删除,包含和调整大小)提供了恒定的时间性能, HashSet 将对象存储

  • 我正在尝试编写布尔方法,但它不起作用 它的工作,如果我写这个方法: 我应该如何为它制作布尔方法?

  • 问题内容: 我有一个,并且想知道最快的方法是检查所有值是否均为零? 有没有比做更快的方法: 问题答案: 我先将所有字节加总后就重写了这个答案,但是这是不正确的,因为Java已经对字节进行了签名,因此我需要or。 另外,我已将JVM预热更改为正确。 最好的选择实际上是简单地遍历所有值。 我想您有三种主要选择: 或所有元素并检查总和。 进行无分支比较。 与分支进行比较。 我不知道使用Java添加字节的

  • 问题内容: 假设我创建了一个像这样的文档: 我可以使用GET / idx / type / 1检索文档: 现在,我想检查字段“ the_field”是否包含值2。我知道我可以使用term子句,但是我需要使用过滤器脚本检查它,因此我尝试了: 并没有结果: 为了测试我的mevl脚本语法是否正确,我尝试这样做: 并获得正确的结果: 我究竟做错了什么? 我认为doc [‘the_field’]。value

  • 问题内容: 如何验证数组仅包含整数值? 我希望能够检查一个数组,并最终得到一个布尔值,如果该数组仅包含整数并且该数组中是否还有其他字符。我知道我可以遍历数组并单独检查每个元素,然后返回或取决于非数字数据的存在: 例如: 但是,有没有更简洁的方法可以使用我从未想到的原生PHP功能呢? 注意:对于我当前的任务,我只需要验证一维数组。但是,如果有一种可以递归工作的解决方案,那么我将不胜感激。 问题答案:

  • 问题内容: 我在Java中有一个布尔数组: 检查所有值是否为真的最优雅的方法是什么? 问题答案: