<AWT Dev> RFR: 8269130: Replace usages of Collection.toArray() with Collection.toArray(T) to avoid redundant array copying
github.com+741251+turbanoff at openjdk.java.net
Mon Jul 26 11:30:22 UTC 2021
On Tue, 15 Jun 2021 12:06:43 GMT, Michael Bien <github.com+114367+mbien at openjdk.org> wrote:
>> I found few places, where code initially perform `Object Colleciton.toArray()` call and then manually copy array into another array with required type.
>> This PR cleanups such places to more shorter call `T Collection.toArray(T)`.
> src/java.base/share/classes/java/security/Security.java line 656:
>> 654: return null;
>> 656: return candidates.toArray(new Provider);
> `candidates.toArray(new Provider[candidates.size()]);`
> would use the fast path of the toArray() implementation. Performance probably doesn't matter much in a lot of this cases, but since its only a few characters more, its still worth considering IMO.
> The only places I would leave this out are on the HashTable and on the Vector collections in this PR, since calling one synchronized method is not the same as calling two - concurrency wise.
> (i am no reviewer)
Actually it's not _the fast path_ - see https://shipilev.net/blog/2016/arrays-wisdom-ancients/
More information about the awt-dev