RFR: String.join(), StringJoiner additions
Roger Riggs
Roger.Riggs at Oracle.com
Thu Apr 18 01:20:10 UTC 2013
Hi,
Can I suggest that the StringJoiner.toString() method explicitly append
the suffix
to the existing StringBuilder.
152 return (value != null ? value.toString() + suffix : emptyValue);
Currently it will go to the trouble of creating a String from the
builder and then
transparently create another StringBuilder to do the concatenation.
152 return (value != null ? value.append(suffix).toString() : emptyValue);
or something similar.
The overhead of StringJoiner supporting prefix and suffix is lower than
doing it separately
in terms of object allocations and garbage and all places that would
need write their
own code to do the concatenation.
Roger
On 4/17/13 5:49 PM, Jim Gish wrote:
> Here's an update:
> http://cr.openjdk.java.net/~jgish/Bugs-5015163-7172553/
> <http://cr.openjdk.java.net/%7Ejgish/Bugs-5015163-7172553/>
>
> Jim
>
> On 04/17/2013 03:15 PM, Mike Duigou wrote:
>> String::
>>
>> line 1253: This should use {@code } rather than <code></code>. I
>> think regular spaces are OK as well. seems inappropriate.
>>
>> lines 2425/2467: elements may not be null either.
>>
>> I can tell you (or maybe it's just me) are itching to change :
>>
>> for (CharSequence cs: elements) {
>> 2477 joiner.add(cs);
>> 2478 }
>>
>> to:
>>
>> elements.forEach(joiner::add);
>>
>> StringJoiner::
>>
>> - <blockquote> isn't needed around <pre> as it's already a <div> you
>> probably mean to do
>>
>> <pre> {@code
>> ...
>> }</pre>
>>
>> for code samples.
>>
>> - It would be nice if the empty output generation in three arg
>> constructor could be suppressed unless needed. Perhaps a special (not
>> null please!) sentinel value?
>>
>> - Four arg constructor doesn't include emptyOutput in @throws NPE
>>
>>
>> On Apr 11 2013, at 15:33 , Jim Gish wrote:
>>
>>> Please review
>>> http://cr.openjdk.java.net/~jgish/Bugs-5015163-7175206-7172553/
>>> <http://cr.openjdk.java.net/%7Ejgish/Bugs-5015163-7175206-7172553/>
>>>
>>> These are changes that we made in lambda that we're now bringing
>>> into JDK8.
>>>
>>> I've made a couple of additions - making StringJoiner final and
>>> adding a couple of constructors to set the emptyOutput chars.
>>>
>>> Thanks,
>>> Jim
>>>
>>> --
>>> Jim Gish | Consulting Member of Technical Staff | +1.781.442.0304
>>> Oracle Java Platform Group | Core Libraries Team
>>> 35 Network Drive
>>> Burlington, MA 01803
>>> jim.gish at oracle.com
>>>
>
More information about the core-libs-dev
mailing list