Collections
Generics
Enums
Stream APIs
Unit Testing with JUnit
Debugging in Java
Practice
Assignment
Back end Track
Week 3 Overview
Previously in Week 2 you learned to:
- Simplify real-world complexity: Using polymorphism, allow objects to take many forms with an organising hierarchy.
- Allow more growth for applications by decoupling components using interfaces and abstract classes.
- Increase reliability of large applications by anticipating failure and handling errors.
In this week, you'll learn all about storing, processing, and validating data efficiently in Java!
Learning goals
- Java Collections: Use
ArrayList, HashSet, and HashMap as flexible, resizable data structures that replace the fixed-size arrays you've used so far.
- Generics: Write classes and methods that work with different types while keeping full type safety — no manual casting needed.
- Enums: Represent fixed values (like status codes or options) in a clean way instead of relying on magic strings or numbers.
- Stream API: Filter, map, transform, and collect data in a modern, readable way.
- Unit Testing with JUnit 5: Apply the testing ideas from the Core program to Java and writing your first unit tests using the Arrange-Act-Assert pattern.
- Debugging in IntelliJ: Set breakpoints, navigate code, and inspect variables at runtime to quickly find and understand problems.
These are core backend skills you'll rely on every day as a developer, and the foundation you'll need when you start building REST APIs in Week 4!
The HackYourFuture curriculum is licensed under CC BY-NC-SA 4.0

*https://hackyourfuture.net/*
Found a mistake or have a suggestion? Let us know in the feedback form.