It seems RxJava has similar functionality in its single() operator.
single( ) and singleOrDefault( )
if the Observable completes after emitting a single item, return that item, otherwise throw an exception (or return a default item)
I'd rather just have an Optional, and I'd rather it be a Collector.