java - Java 中 String.contains() 的大 O 是什么?

标签 java string big-o contains

我正在做一个项目,需要优化运行时间。是 String.contains()运行时间与 TreeSet.contains() 相同, 是 O(logN)?

我问的原因是我正在构建 TreeMap<String, TreeSet<Song>> ,其中 Songs 包含一串歌词。根据效率,我正在考虑在歌曲中包含一组歌词,并在其上而不是字符串上运行搜索。

最佳答案

最著名的算法之一是 Boyer-Moore字符串搜索算法是 O(n),虽然它可以在最好的情况下提供次线性性能。

在 Java 中使用哪种算法取决于您下载的实现。例如,OpenJDK 似乎使用了一种在 O(nm) 中运行的简单算法,并且在最佳情况下具有线性性能。见第 1770-1806 行 here .

关于java - Java 中 String.contains() 的大 O 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4089558/

相关文章:

java - 将所有可能的字符串日期转换为日期对象

java - 在 mapreduce 作业提交期间为 mappers 和 reducer 配置内存

java - 调整 JPanel 的高度

java - Glassfish 无法从 Web 门户重新启动,但可以使用 asadmin 命令

string - SAS - 根据表中另一个变量值反转变量值的顺序

python - 通过给定的索引对列表删除子字符串

algorithm - 当某物是 Big O 时,是否意味着它正是 Big O 的结果?

java - 结合 hashCode() 和 equals() 更快?

algorithm - 算法中的大 O 复杂度

java - 对大 O 表示法感到困惑