<i18n dev> RFR: 8295670: Remove duplication in java/util/Formatter/Basic*.java

Сергей Цыпанов duke at openjdk.org
Sat Oct 29 18:09:25 UTC 2022


On Fri, 28 Oct 2022 21:51:03 GMT, Justin Lu <duke at openjdk.org> wrote:

> Issue: Duplication of methods between Basic*.java test classes, due to auto generation by genBasic.sh
> 
> Fix: Reorganize parts of Basic-X.java.template into base class in Basic.java. Toggled -nel flag for generation script (genBasic.sh) to remove excessive white space. Moved a previous direct change to BasicDateTime.java into the template.
> 
> Note: Main files to look at are Basic.java and Basic-X.java.template, as the rest are a reflection of the auto generation

test/jdk/java/util/Formatter/Basic-X.java.template line 1608:

> 1606:         // time zone ID. See JDK-8254865.
> 1607:         final List<String> list =  new ArrayList<String>();
> 1608:         Collections.addAll(list, ids);

I think

final List<String> list =  new ArrayList<>(Arrays.asList(ids));

is going to be faster than

final List<String> list =  new ArrayList<String>();
Collections.addAll(list, ids);

Alternatively you can contruct presized ArrayList.

test/jdk/java/util/Formatter/Basic-X.java.template line 1612:

> 1610:         list.remove("America/WhiteHorse");
> 1611:         list.remove("Canada/Yukon");
> 1612:         ids = list.toArray(new String[list.size()]);

ids = list.toArray(new String[0]);

is likely to be faster, see https://shipilev.net/blog/2016/arrays-wisdom-ancients/

-------------

PR: https://git.openjdk.org/jdk/pull/10910


More information about the i18n-dev mailing list