The addition of Streams and Lambdas was a much needed breath of fresh air for Java and brought with it a new wave of declarative programming. In this tutorial we’ll be going over Streams, some of their features, some of their drawbacks, and a variety of use cases.