Search code examples
javastringbuilder

StringBuilder insert() vs append() performance?


Is there any difference in the performance of insert() vs append() from StringBuilder class? I will be building plenty of short string as text identifiers and asked myself this question... Should I initialize SB with a separator and use insert + append or just append ?


Solution

  • Knowing that:

    • An insert at the end of the string representation is equivalent to an append in term of time complexity (O(n)).
    • An insert anywhere else than at the end can't be obtained with an append (as they have differents purposes).
    • For info, an insert may involve up to 3 System.arraycopy (native) calls, while an append 1.

    You can easily conclude:

    • If you want to insert at the end of the string representation, use append
    • Otherwise, use insert

    Doing so, you will have the best performance. But again, these two methods serving two differents purposes (with the exception of inserting at the end), there is no real question here.