Lab Overview
Being able to code productively with Java Streams is an essential skill needed to create robust, bug-free, and performant applications.
This lab is designed to deepen your Java Streams knowledge. You will be required to complete the following Java coding exercise:
- Exercise 1 - Collecting: Complete the Streaming code required to collect and aggregate Movie data stored on the filesystem, implementing methods such as:
- getMovieCountByGenre
- getPriceStatistics
- getOnSaleMovieInfo
- Exercise 2 - Streams: Complete the Streaming code required to filter and map over Movie data stored on the filesystem, implementing methods such as:
- getMovieCount
- getMoviesByStudio
- getGenres
- getMinimumPrice
- findMovieByTitle
Note: Each exercise is supplied with a fully completed solution code for reference when required.
Lab Objectives
Upon completion of this lab, you will be able to:
- Be able to work confidently with Java Streams
- Implement custom grouping, filtering, and mapping solutions using Java Streams
- Understand the benefits of working with Java Streams and associated Interfaces
- Run and debug the Java code and examine the results that are printed to the console
You should:
- Be comfortable with using a browser-based IDE
Lab Environment
This lab will start with the following AWS resources provisioned automatically for you:
- A single EC2 instance, named ide.java.platform.instance, which will have a public IP address attached. This instance will host a web-based Java IDE (based on the Visual Code editor).
To achieve the lab end state, you will be walked through the process of:
- Using your local browser, access the web-based Java IDE served from the ide.java.platform.instance
- Completing the following lab exercises:
- Exercise 1 - Collecting
- Exercise 2 - Streams
Updates
March 31st, 2020 - Updated broken maven download link
June 16th, 2019 - Optimized creation of lab resources to reduce the time it takes to access the browser IDE by 60%.

Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.
Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).