gpt4 book ai didi

java - 反向字符串和附加后缀的性能测量

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:24:42 25 4
gpt4 key购买 nike

我正在阅读有关字符串反转的内容:

第一个代码:

public static String reverse(String s) {
String rev = "";
for (int i = s.length() - 1; i >= 0; i--)
rev += s.charAt(i);
return rev;
}

第二个代码:

public static String reverse(String s) {
StringBuilder rev = new StringBuilder();
for (int i = s.length() - 1; i >= 0; i--)
rev.append(s.charAt(i));
return rev.toString();
}

有人提到使用字符串我们有二次时间,使用字符串生成器我们有线性时间。

在第 9 页上,关于后缀的排列在这里使用字符串更好。

我不明白作者在上述两种情况下是如何得出结论的。

有人可以帮我吗?

最佳答案

在第一个代码中:

public static String reverse(String s) {
String rev = "";
for(int i = s.length() - 1; i >= 0; i--)
rev += s.charAt(i);
return rev;
}

每次执行rev += s.charAt(i);,都会创建一个StringBuilder,那么rev的内容就是追加,然后追加s.charAt(i),然后将StringBuilder转换为String。那将是 s.length() - 1 StringBuilder 和相同数量的字符串。

在第二个版本中:

public static String reverse(String s) {
StringBuilder rev = new StringBuilder();
for(int i = s.length() - 1; i >= 0; i--)
rev.append(s.charAt(i));
return rev.toString();
}

只有一个 StringBuilder 和一个 String。

关于您的第二个困惑,能否详细说明一下?很难说出作者的意思。

关于java - 反向字符串和附加后缀的性能测量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19806377/

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