Sounds very reasonable, thanks for watching and commenting :) Doing the performance check would be valuable (to know the magnitude), but I agree that the green method shouldn't beat toString().
Hen On Thu, Apr 7, 2011 at 2:49 AM, Julien Aymé <julien.a...@gmail.com> wrote: > Hi, > > I think that for char[] based implementation of CharSequence (mainly > StringBuffer/StringBuilder), > it would be faster to convert to String (copy char[] once) then invoke > to charArray method (copy char[] twice). > > Indeed, invoking many times charAt(index) may be costly since the > range check would be done every time, > and the operations (affect char in char[]) would be done as many time > as the CharSequence length. > > But I may be wrong on this one (with jit optimization magic). > > Anyway, thanks for the work on Lang3. > > Regards, > Julien > > 2011/4/7 <bay...@apache.org>: >> Author: bayard >> Date: Thu Apr 7 04:03:55 2011 >> New Revision: 1089724 >> >> URL: http://svn.apache.org/viewvc?rev=1089724&view=rev >> Log: >> Implemented the native CharSequence version of toCharArray >> >> Modified: >> >> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java >> >> Modified: >> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java >> URL: >> http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java?rev=1089724&r1=1089723&r2=1089724&view=diff >> ============================================================================== >> --- >> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java >> (original) >> +++ >> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java >> Thu Apr 7 04:03:55 2011 >> @@ -6489,8 +6489,12 @@ public class StringUtils { >> if (cs instanceof String) { >> return ((String) cs).toCharArray(); >> } else { >> - // TODO: Implement rather than convert to String >> - return cs.toString().toCharArray(); >> + int sz = cs.length(); >> + char[] array = new char[cs.length()]; >> + for (int i=0; i < sz; i++) { >> + array[i] = cs.charAt(i); >> + } >> + return array; >> } >> } >> >> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org