Possible addition of a default 'getOne' method on Iterable?
Zheka Kozlov
orionllmain at gmail.com
Wed Jan 31 05:28:30 UTC 2018
Isn't iterable.getOne() the same as iterable.iterator().next()?
2018-01-31 12:15 GMT+07:00 Dave Brosius <dbrosius at mebigfatguy.com>:
> Greetings,
>
>
> sorry if this has been asked before, but has there been any consideration
> for adding a
>
> default T getOne() {
>
> Iterator<T> it = iterator();
> if (!it.hasNext()) {
> throw new NoSuchElementException();
> }
>
> return it.next();
> }
>
>
> on the Iterable interface?
>
>
> It is often the case you have a collection of some sort (un indexed, in
> this case), where you know there is only one value in the collection, or
> you know for some attribute of all the objects in the Iterable, all objects
> can be thought of as the same, and so you just want to get any of the
> elements.
>
> Having to craft this iterator code is annoying, and it would be much nicer
> to be able to do
>
> String s = mySet.getOne();
>
> In addition to this, it is likely that most collections could implement
> getOne() more optimally than using the standard iterator approach.
>
> Of course i am not stuck on the choice of the name 'getOne' anything would
> do. examplar() ? As we know, naming is always the hardest part.
>
> thoughts?
> dave
>
>
More information about the core-libs-dev
mailing list