java - Stringbuilder subSequence方法的时间复杂度

标签 java time-complexity

从 Java 7 开始,String 子字符串方法已将其大 O 从 O(1) 更改为 O(n)。

StringBuilder subSequence 方法的时间复杂度是多少?

最佳答案

java-11-openjdk中,AbstractStringBuilder.subSequence调用substring...

public CharSequence subSequence(int start, int end) {
    return substring(start, end);
}

...与String的同名方法几乎相同...

public String substring(int start, int end) {
    checkRangeSIOOBE(start, end, count);
    if (isLatin1()) {
        return StringLatin1.newString(value, start, end - start);
    }
    return StringUTF16.newString(value, start, end - start);
}

...调用 newString 它将(在两种情况下)复制后备数组,因此也是 O(n)。

public static String newString(byte[] val, int index, int len) {
    return new String(Arrays.copyOfRange(val, index, index + len),
                      LATIN1);
}

关于java - Stringbuilder subSequence方法的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56132309/

相关文章:

mysql - 这两个查询之间的效率或其他差异是什么?

java - 最佳搜索数据结构

performance - 筛选后找到素因数的最快方法

java - 速度模板#set 查询

java - 如何使用join在spring data jpa和spring boot中添加计数字段

algorithm - 最坏情况下具有相同边界的等效数据结构(与摊销相比)

algorithm - 对数大 O 与平方根

algorithm - T(n) = T(n-1) + O(n * n!) 的渐近复杂度是多少?

java - 什么是 Java 类加载器?

java - 如何?在 Java 中绘制自定义复合对象