gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:54:02 25 4
gpt4 key购买 nike

从 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/

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