我知道StringBuffer的append()操作需要O(1)时间,并且与String连接相比,它避免了创建多个String对象的开销。
那么对于insert(int offset, char c)呢?
我需要反复调用此操作,逐个以相反的顺序添加新字符到StringBuffer对象中。例如:
StringBuffer sb = new StringBuffer();
sb.insert(0, 'c');
sb.insert(0, 'b');
sb.insert(0, 'a');
System.out.println(sb.toString()); //prints out "abc";
在理想情况下,如果StringBuffer对象在内部是一个字符链表的话,每个insert(0, c)操作应该是O(1)。我希望确认这是否确实如此。
AbstractStringBuffer
;虽然它不是我们从标准的 java.lang 包中使用的 StringBuffer,但我猜测 StringBuffer 的实现大致相似。 - Erencie