Unnecessary array copy in AbstractStringBuilder.indexOf(String)?
Martin Desruisseaux
martin.desruisseaux at geomatys.fr
Mon Nov 19 15:46:58 UTC 2012
Hello all
I noticed that AbstractStringBuilder.indexOf(String, int) is implemented
as below:
public int indexOf(String str, int fromIndex) {
return String.indexOf(value, 0, count,
str.toCharArray(), 0, str.length(),
fromIndex);
}
The call to str.toCharArray() creates a copy of the String.value char[]
array. This copy doesn't seem necessary since the above
String.indexOf(...) method doesn't modify the array content. Shouldn't
AbstractStringBuilder passes directly the reference to the String
internal array instead, maybe using package-privated access to the array?
Admittedly the cloned array is usually small, but the call to
indexOf(String, int) is often done in a loop.
Martin
More information about the core-libs-dev
mailing list