Or maybe Stream is just an interface, and all kinds of collections are required to implement these operations specified in this interface?
I.e. That's right: the collection should implement the stream method, which should be implemented, as you explained.
However, the stream interface provides some default methods. Some streaming providers make their own storage, for example. collection. Others do not need storage, for example. providers of natural numbers, suppliers of random numbers.
Corona
source share