在Java中为String添加前缀?

时间:2014-06-11 21:11:15

标签: java string concatenation

我知道在字符串中添加字符应该花费O(1)时间。例如: -

String S = "abc"
S = S+'z';

如果我想反过来,将String连接到char,该怎么办?这样可能吗?

S = 'z'+S;

如果是,那么需要多长时间? Java是否复制了字符串S {O(n)}的全部内容,或者只调整内存中的指针{O(1)}?

谢谢!

2 个答案:

答案 0 :(得分:2)

字符串是不可变的。因此,这种操作(添加前缀)不可能是O(1)。它至少与S的大小呈线性关系。并且......因为O(f(N))> O(f(N)),所以没有意义(想想它)。 O(N),它意味着它的O(N)。从常识中可以肯定这一点。

答案 1 :(得分:0)

concat的顺序无关紧要。在最近的编译器版本中,这(通常)变成使用StringBuilder的字节代码。