This document provides an introduction to using Java Streams. It begins with a brief overview of streams and their benefits. It then covers stream operations like intermediate and terminal operations. The bulk of the document consists of examples of converting iterative code to use streams through a series of exercises. It concludes with some gotchas and more advanced stream operations.