An introduction to streams
A stream is a sequence of data (it is not a data structure) that allows you to apply a sequence of operations in a sequential or concurrent way to filter, convert, sort, reduce, or organize those elements to obtain a final object. For example, if you have a stream with the data of your employees, you can use a stream to:
Count the total number of employees
Calculate the average salary of all employees who live in a particular place
Obtain a list of the employees who haven't met their objectives
Any operation that implies work with all or part of the employees
Streams are greatly influenced by functional programming (the Scala programming language provides a very similar mechanism), and they were thought to work with lambda expressions. A stream API resembles LINQ (short for Language-Integrated Query) queries available in C# language and, to some extent, could be compared with SQL queries.
In the following sections, we will explain the basic characteristics of streams...