BELUGA BEHR created TEXT-87: ------------------------------- Summary: StrBuilder Add Prefix Optimization Key: TEXT-87 URL: https://issues.apache.org/jira/browse/TEXT-87 Project: Commons Text Issue Type: New Feature Reporter: BELUGA BEHR Priority: Trivial
As a nice differentiation to Java's String Builder, please add an optimization for pre-appending. Create the buffer a little larger and keep a pointer at the 0-index of the buffer so that pre-appending isn't necessarily a copy operations and instead is simply a pointer update and an array value update. {code} public StrBuilder(int initialCapacity, int preCapacity); // So that on something like this, insert(0, 'A'), isn't a guaranteed array copy /** * Inserts the value into this builder. * * @param index the index to add at, must be valid * @param value the value to insert * @return this, to enable chaining * @throws IndexOutOfBoundsException if the index is invalid */ public StrBuilder insert(final int index, final char value) { validateIndex(index); // if index == 0 and (bufIndex != 0) // buffer[bufIndexindex--] = value; // return this; ensureCapacity(size + 1); System.arraycopy(buffer, index, buffer, index + 1, size - index); buffer[index] = value; size++; return this; } {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)