Possible addition of a default 'getOne' method on Iterable?
Dave Brosius
dbrosius at mebigfatguy.com
Wed Jan 31 05:15:19 UTC 2018
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