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]));
}
}
}