Stream represents a sequence of elements and supports different kind of operations to perform computations upon those elements. With Java 8,
Collection interface has two methods to generate a
Stream operations are either intermediate or terminal. Intermediate operations return a
Stream so multiple intermediate operations can be chained before the
Stream is closed. Terminal operations are either void or return a non-stream result.