Java Data Structures and Collections
Master Java collections and data structures by building an Inventory Management System. Covers arrays, ArrayList, HashMap, generics, sorting, and streams through 14 paired lessons.
View badge details
About This Course
Course Curriculum
14 Lessons
Arrays and Iteration Patterns
Learn Java array fundamentals: fixed-size arrays, array initialization, traversal with for and for-each loops, linear search, manual size tracking, and why fixed arrays lead naturally to ArrayList. All examples use the Inventory Management System context.
Arrays - Lab Exercises
Hands-on exercises to traverse a Product[] array using for and for-each loops, implement linear search in InventorySearch.java, and add a product to the array while handling overflow.
ArrayList and LinkedList
Learn ArrayList internals and core operations, safe bulk removal with removeIf, LinkedList for FIFO/deque operations, ArrayList vs LinkedList performance trade-offs, and ConcurrentModificationException prevention.
ArrayList - Lab Exercises
Hands-on exercises to replace the Product[] array with ArrayList in InventoryStore, add safe bulk operations with removeIf, and implement a LinkedList-based search history.
Maps and Sets
Learn HashMap O(1) key-value operations, iterating Maps with entrySet, grouping with Map
Maps and Sets - Lab Exercises
Hands-on exercises to migrate InventoryStore product storage to HashMap, implement the CategoryRegistry with computeIfAbsent grouping, and track active categories with HashSet.
Generics
Learn why generics exist, writing generic classes and methods, bounded type parameters, wildcards (extends/super), PECS rule, type erasure, and common generic pitfalls.
Generics - Lab Exercises
Hands-on exercises to build a generic Repository
Sorting and Comparable
Learn how Java's Comparable and Comparator interfaces enable sorting of objects, and how to use Collections.sort, Arrays.sort, and the Stream API's sorted() method.
Sorting - Lab Exercises
Practice implementing Comparable on Product, creating Comparator instances, and sorting the inventory by multiple fields.
Streams and Functional Interfaces
Learn the Java Stream API: filter, map, reduce, collect, and the core functional interfaces Predicate, Function, Consumer, and Supplier.
Streams - Lab Exercises
Practice using the Java Stream API to filter, transform, and aggregate inventory data using Predicate, Function, and Collectors.
Capstone Briefing
A comprehensive review of all course concepts and a detailed briefing on the Capstone Project: building a complete Inventory Management System with categories, sorting, stream-based reporting, and generic repositories.
Capstone Project
Build the complete Inventory Management System by implementing CategoryManager, ReorderQueue, InventoryReport, and InventoryManager using all course concepts: generics, collections, sorting, and streams.