java - 从HashSet得到的流过滤器的时间复杂度是多少?

标签 java performance data-structures java-stream hashset

Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
...

以下操作的时间复杂度是多少? O(n) 还是 O(1)?

set.stream().filter(e -> e == 1).findFirst();

最佳答案

如果你从另一个角度看,你会更好地理解它,你的解决方案是这样的:

for(Integer i : set){
    if(i == 1){
        break;
    }
}

所以它是O(n),因为它循环遍历所有集合,并逐一检查,如果条件正确则返回值,否则继续直到n其他元​​素

关于java - 从HashSet得到的流过滤器的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45763104/

相关文章:

c - Shell 脚本 vs C 性能

algorithm - 以编程方式将节点分配给分层树/网络

c++ - 在 C++ 中具有相同类的属性

java - 滚动条未出现在自定义面板上

Java List<?> 设置方法

excel - 根据 2 个标准输入将行从一个 Excel 工作表复制到另一个工作表

c++ - 不适合内存的随机访问容器?

javascript - 奇怪的: session variable returns null from a post controller to a jsp page

java.lang.IllegalMonitorStateException : object not locked by thread before wait() 异常

java - Spring计划任务的配置文件性能