RFR: 8035584: (s) ArrayList(c) should avoid inflation if c is empty

Mike Duigou mike.duigou at oracle.com
Fri Feb 21 22:41:47 UTC 2014

Hello all;

This changeset consists of two small performance improvements for ArrayList. Both are related to the lazy initialization introduced in JDK-8011200.

The first change is in the ArrayList(int capacity) constructor and forces lazy initialization if the requested capacity is zero. It's been observed that in cases where zero capacity is requested that it is very likely that the list never receives any elements. For these cases we permanently avoid the allocation of an element array.

The second change, noticed by Gustav Åkesson, involves the ArrayList(Collection c) constructor. If c is an empty collection then there is no reason to inflate the backing array for the ArrayList.


I also took the opportunity to the <tt></tt> -> {@code } conversion for the javadoc.



More information about the core-libs-dev mailing list