Довольно просто реализовать себя, если честно:
public static <T> T single(Iterable<T> source) {
Iterator<T> iterator = source.iterator();
if (!iterator.hasNext()) {
throw new IllegalArgumentException("No elements");
}
T first = iterator.next();
if (iterator.hasNext()) {
throw new IllegalArgumentException("More than one element");
}
return first;
}
(Или поместите его в универсальный класс вместо того, чтобы делать метод универсальным. Вы также можете решить использовать другой тип исключения.)