stats collected as of this point in time. If the stream has not been
exhausted, then calling next() may change the value of the returned stats. This change
may or may not be reflected in the stats returned, depending on the implementation.
Filter elements out of the stream which do not match the supplied predicate.
The returned Stream is also AutoCloseable; closing the returned Stream should also close this stream,
so as to make resource-handling simpler.