Please do not cause garbage to apparently be generated all over the place by creating new empty arrays all the time. Use the constants Commons Lang constants already defines; see ArrayUtils.
Gary On Thu, Dec 26, 2019 at 4:48 PM <pascalschumac...@apache.org> wrote: > This is an automated email from the ASF dual-hosted git repository. > > pascalschumacher pushed a commit to branch master > in repository https://gitbox.apache.org/repos/asf/commons-lang.git > > > The following commit(s) were added to refs/heads/master by this push: > new 84668a2 Use Collection#toArray(new T[0]) instead of a presized > array as it is faster on modern JVMs. > 84668a2 is described below > > commit 84668a2d980316a580030fd64764cb072b520b09 > Author: pascalschumacher <pascalschumac...@gmx.net> > AuthorDate: Thu Dec 26 22:48:12 2019 +0100 > > Use Collection#toArray(new T[0]) instead of a presized array as it is > faster on modern JVMs. > --- > src/main/java/org/apache/commons/lang3/CharSet.java | 2 +- > src/main/java/org/apache/commons/lang3/StringUtils.java | 10 > +++++----- > .../org/apache/commons/lang3/exception/ExceptionUtils.java | 6 +++--- > src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java | 4 ++-- > .../java/org/apache/commons/lang3/reflect/MethodUtils.java | 2 +- > src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java | 2 +- > src/main/java/org/apache/commons/lang3/text/StrTokenizer.java | 4 ++-- > .../org/apache/commons/lang3/time/DurationFormatUtils.java | 2 +- > .../java/org/apache/commons/lang3/time/FastDatePrinter.java | 2 +- > .../commons/lang3/concurrent/EventCountCircuitBreakerTest.java | 2 +- > 10 files changed, 18 insertions(+), 18 deletions(-) > > diff --git a/src/main/java/org/apache/commons/lang3/CharSet.java > b/src/main/java/org/apache/commons/lang3/CharSet.java > index 3fdfd07..7955115 100644 > --- a/src/main/java/org/apache/commons/lang3/CharSet.java > +++ b/src/main/java/org/apache/commons/lang3/CharSet.java > @@ -225,7 +225,7 @@ public class CharSet implements Serializable { > // NOTE: This is no longer public as CharRange is no longer a public > class. > // It may be replaced when CharSet moves to Range. > /*public*/ CharRange[] getCharRanges() { > - return set.toArray(new CharRange[set.size()]); > + return set.toArray(new CharRange[0]); > } > > > //----------------------------------------------------------------------- > diff --git a/src/main/java/org/apache/commons/lang3/StringUtils.java > b/src/main/java/org/apache/commons/lang3/StringUtils.java > index abde7ec..d629806 100644 > --- a/src/main/java/org/apache/commons/lang3/StringUtils.java > +++ b/src/main/java/org/apache/commons/lang3/StringUtils.java > @@ -7507,7 +7507,7 @@ public class StringUtils { > currentType = type; > } > list.add(new String(c, tokenStart, c.length - tokenStart)); > - return list.toArray(new String[list.size()]); > + return list.toArray(new String[0]); > } > > /** > @@ -7735,7 +7735,7 @@ public class StringUtils { > } > } > > - return substrings.toArray(new String[substrings.size()]); > + return substrings.toArray(new String[0]); > } > > // > ----------------------------------------------------------------------- > @@ -7923,7 +7923,7 @@ public class StringUtils { > if (match || preserveAllTokens && lastMatch) { > list.add(str.substring(start, i)); > } > - return list.toArray(new String[list.size()]); > + return list.toArray(new String[0]); > } > > /** > @@ -8022,7 +8022,7 @@ public class StringUtils { > if (match || preserveAllTokens && lastMatch) { > list.add(str.substring(start, i)); > } > - return list.toArray(new String[list.size()]); > + return list.toArray(new String[0]); > } > > /** > @@ -8835,7 +8835,7 @@ public class StringUtils { > if (list.isEmpty()) { > return null; > } > - return list.toArray(new String[list.size()]); > + return list.toArray(new String[0]); > } > > /** > diff --git > a/src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java > b/src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java > index 5969614..dd154e3 100644 > --- a/src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java > +++ b/src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java > @@ -274,7 +274,7 @@ public class ExceptionUtils { > } > frames.addAll(trace); > } > - return frames.toArray(new String[frames.size()]); > + return frames.toArray(new String[0]); > } > > /** > @@ -325,7 +325,7 @@ public class ExceptionUtils { > while (frames.hasMoreTokens()) { > list.add(frames.nextToken()); > } > - return list.toArray(new String[list.size()]); > + return list.toArray(new String[0]); > } > > /** > @@ -438,7 +438,7 @@ public class ExceptionUtils { > */ > public static Throwable[] getThrowables(final Throwable throwable) { > final List<Throwable> list = getThrowableList(throwable); > - return list.toArray(new Throwable[list.size()]); > + return list.toArray(new Throwable[0]); > } > > /** > diff --git > a/src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java > b/src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java > index d72dc53..553be4e 100644 > --- a/src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java > +++ b/src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java > @@ -199,7 +199,7 @@ public class FieldUtils { > */ > public static Field[] getAllFields(final Class<?> cls) { > final List<Field> allFieldsList = getAllFieldsList(cls); > - return allFieldsList.toArray(new Field[allFieldsList.size()]); > + return allFieldsList.toArray(new Field[0]); > } > > /** > @@ -237,7 +237,7 @@ public class FieldUtils { > */ > public static Field[] getFieldsWithAnnotation(final Class<?> cls, > final Class<? extends Annotation> annotationCls) { > final List<Field> annotatedFieldsList = > getFieldsListWithAnnotation(cls, annotationCls); > - return annotatedFieldsList.toArray(new > Field[annotatedFieldsList.size()]); > + return annotatedFieldsList.toArray(new Field[0]); > } > > /** > diff --git > a/src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java > b/src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java > index bbd5019..491470d 100644 > --- a/src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java > +++ b/src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java > @@ -878,7 +878,7 @@ public class MethodUtils { > final boolean > searchSupers, final boolean ignoreAccess) { > final List<Method> annotatedMethodsList = > getMethodsListWithAnnotation(cls, annotationCls, searchSupers, > ignoreAccess); > - return annotatedMethodsList.toArray(new > Method[annotatedMethodsList.size()]); > + return annotatedMethodsList.toArray(new Method[0]); > } > > /** > diff --git a/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java > b/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java > index 2a6ccd0..f9df8c6 100644 > --- a/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java > +++ b/src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java > @@ -1149,7 +1149,7 @@ public class TypeUtils { > } > } > > - return types.toArray(new Type[types.size()]); > + return types.toArray(new Type[0]); > } > > /** > diff --git a/src/main/java/org/apache/commons/lang3/text/StrTokenizer.java > b/src/main/java/org/apache/commons/lang3/text/StrTokenizer.java > index c9ab666..97fae7d 100644 > --- a/src/main/java/org/apache/commons/lang3/text/StrTokenizer.java > +++ b/src/main/java/org/apache/commons/lang3/text/StrTokenizer.java > @@ -604,10 +604,10 @@ public class StrTokenizer implements > ListIterator<String>, Cloneable { > if (chars == null) { > // still call tokenize as subclass may do some work > final List<String> split = tokenize(null, 0, 0); > - tokens = split.toArray(new String[split.size()]); > + tokens = split.toArray(new String[0]); > } else { > final List<String> split = tokenize(chars, 0, > chars.length); > - tokens = split.toArray(new String[split.size()]); > + tokens = split.toArray(new String[0]); > } > } > } > diff --git > a/src/main/java/org/apache/commons/lang3/time/DurationFormatUtils.java > b/src/main/java/org/apache/commons/lang3/time/DurationFormatUtils.java > index 83af2e0..4a75237 100644 > --- a/src/main/java/org/apache/commons/lang3/time/DurationFormatUtils.java > +++ b/src/main/java/org/apache/commons/lang3/time/DurationFormatUtils.java > @@ -564,7 +564,7 @@ public class DurationFormatUtils { > if (inLiteral) { // i.e. we have not found the end of the literal > throw new IllegalArgumentException("Unmatched quote in > format: " + format); > } > - return list.toArray(new Token[list.size()]); > + return list.toArray(new Token[0]); > } > > > //----------------------------------------------------------------------- > diff --git > a/src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java > b/src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java > index a5edb28..888d3fb 100644 > --- a/src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java > +++ b/src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java > @@ -160,7 +160,7 @@ public class FastDatePrinter implements DatePrinter, > Serializable { > */ > private void init() { > final List<Rule> rulesList = parsePattern(); > - mRules = rulesList.toArray(new Rule[rulesList.size()]); > + mRules = rulesList.toArray(new Rule[0]); > > int len = 0; > for (int i=mRules.length; --i >= 0; ) { > diff --git > a/src/test/java/org/apache/commons/lang3/concurrent/EventCountCircuitBreakerTest.java > b/src/test/java/org/apache/commons/lang3/concurrent/EventCountCircuitBreakerTest.java > index b3fb5cf..2819006 100644 > --- > a/src/test/java/org/apache/commons/lang3/concurrent/EventCountCircuitBreakerTest.java > +++ > b/src/test/java/org/apache/commons/lang3/concurrent/EventCountCircuitBreakerTest.java > @@ -407,7 +407,7 @@ public class EventCountCircuitBreakerTest { > */ > public void verify(final Boolean... values) { > assertArrayEquals(values, > - changedValues.toArray(new > Boolean[changedValues.size()])); > + changedValues.toArray(new Boolean[0])); > } > } > } > >