gpt4 book ai didi

java - Java 的 substring() 的时间复杂度

转载 作者:IT老高 更新时间:2023-10-28 11:48:00 34 4
gpt4 key购买 nike

Java中String#substring()方法的时间复杂度是多少?

最佳答案

新答案

从 Java 7 生命周期内的更新 6 开始,substring 的行为更改为创建副本 - 因此每个 String 都引用一个 char[] 据我所知, 与任何其他对象共享。所以到那时,substring() 变成了一个 O(n) 操作,其中 n 是子字符串中的数字。

旧答案:Java 7 之前

未记录 - 但实际上 O(1) 如果您假设不需要垃圾收集等。

它只是构建一个新的 String 对象,该对象引用相同的底层 char[] 但具有不同的偏移量和计数值。因此,成本是执行验证和构造单个新(相当小)对象所花费的时间。这是 O(1) 就可以根据垃圾收集、CPU 缓存等讨论操作的复杂性是明智的。特别是,它不直接取决于原始字符串或子字符串的长度.

关于java - Java 的 substring() 的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4679746/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com