Things to cover
- Converting mutation-and-for-loops and Guava iterables
- Performance
- Parallelising
- Filtering
- Mapping
- Reducing
- Collecting
- Partitioning and grouping
- Generators (infinite streams, streams evaluate lazily)
- Take (re. streams evaluate lazily)
- Flatmap
- Null vs Optional
- ForEach
- Error handling and exceptions