> In the current implementation of `String.join(CharSequence, Iterable)`, the > temp array `elems` is always initialized with a length of 8. It will cause > many array recreations when the `Iterable` contains more than 8 elements. > Furthermore, it's very common that an `Iterable` is also a `Collection`. So > if the `Iterable` is an instance of `Collection`, the initial length of the > array can be `((Collection<?>)elements).size()`. It will not change the > current behavior even if the `Collection` is modified asynchronously. > > I don't know whether this change requires a CSR request.
Tingjun Yuan has updated the pull request incrementally with one additional commit since the last revision: use spliterator().estimateSize() ------------- Changes: - all: https://git.openjdk.org/jdk/pull/13383/files - new: https://git.openjdk.org/jdk/pull/13383/files/50e670c7..4fe345ef Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=13383&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13383&range=01-02 Stats: 9 lines in 1 file changed: 7 ins; 1 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/13383.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/13383/head:pull/13383 PR: https://git.openjdk.org/jdk/pull/13383