Modern Java Collections

Video description

More than 6 hours of video training covering Java Collections, including design considerations and features added with Java 8 and Java 9!

Learn everything you need to know to get the most of the Java Collections Framework. Simon Roberts, best-selling Java author and trainer, will detail the nuances of working with collections, so you can better understand the concepts and see firsthand how to use this powerful API. This course is an essential guide to learning how the collections API—which is rich with functionality—can help with regular programing projects. In addition to learning about interfaces, classes, and methods, you will explore design questions, why the API is the way it is, and how you can use it for best effect. You will also learn how to break up complex coding problems and how to more efficiently maintain code. You will actually explore design patterns and principles used in the collections API that are applicable to many areas of programing.

This course takes a different approach from most Java courses, using a story-like approach to teach concepts. Topics start by looking at a problem, considering how it might be solved, and steadily working to more advanced solutions, while building understanding of the concepts, libraries, and syntax being used. You will develop a thorough understanding of each chunk of knowledge, so you are ready to use that understanding in your daily coding.

You will start by taking a look at generalization in collections and explore key collection API interfaces. You will then find out why there’s a need for generics, see general tools you can use, and take a look at some use cases. After that you will dive in, exploring investigating lists, array-based implementations of a list, linked implementation, and more. The next step is then understanding iterating collections, equality, orders, hash codes, and hashed storage before jumping into sets, trees, improving designs, maps, implementing the iterator pattern, the new functional methods added with Java 8, and more interfaces. You will then take a look at list implementations and utilities for collections. The course will wrap things up with a section on creating and combining comparators, which includes more functional additions to the APIs.

Download the source code repository for this LiveLesson from

About the Instructor

Simon Roberts started his computing career as a programmer in the early 1980s and built several of his own microprocessor-based computers. He moved to Sun Microsystems, Inc. in mid-1995 and almost immediately became the lead Java instructor in the U.K. In 1998, Simon moved to Colorado, where he still lives. While at Sun, he created the Sun Certified Programmer, Developer, and Architect certifications, and worked in teams on several other certifications and subsequent revisions to those exams. He wrote three books on Java, including two certification study guides, one covering the Programmer and Developer exams, and one on the Architect exam. He left Sun in 2004 and became an independent instructor, architect, and software engineer.

Skill Level

  • Beginner to Intermediate

Who Should Take This Course

This course will benefit intermediate and advanced level Java programmers looking to develop and solidify their understanding of the core Collections API, or looking to add the functional features that were added at Java 8 to their repertoire. Additionally, because the course investigates design issues and patterns in the context of the Collections API, anyone wishing to improve their grasp of how to apply patterns as part of their software engineering toolkit can benefit. The course also addresses all the Collections-related topics that are essential knowledge for Oracle’s Java Programmer certification (1Z0-809) for Java SE 8, and is of value to anyone preparing for that, or a similar exam.

Course Requirements

The primary intended audience has an intermediate knowledge of Java. In addition, software engineers who are transitioning to Java from a position of solid experience of another object-oriented programming language in the syntactic traditions of C/C++ should be able to gain full benefit from the course. For example, a candidate with a good knowledge of C# would benefit from this material, even if one does not have prior experience in Java.

About LiveLessons Videos

The LiveLessons Video Training series publishes hundreds of hands-on, expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. This professional and personal technology video series features world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, IBM Press, Pearson IT Certification, Prentice Hall, Sams, and Que. Topics include: IT Certification, Programming, Web Development, Mobile Development, Home & Office Technologies, Business & Management, and more. View All LiveLessons

Publisher resources

Download Example Code

Table of contents

  1. Introduction
    1. Modern Java Collections: Introduction
  2. Lesson 1: Generalization and Collections
    1. Learning objectives
    2. 1.1 Review Generalization
    3. 1.2 Generalization in Collections
    4. 1.3 Key Collections API Interfaces (Part 1)
    5. 1.4 Key Collections API Interfaces (Part 2)
  3. Lesson 2: The Need for Generics
    1. Learning objectives
    2. 2.1 First Use of List
    3. 2.2 General Tools, Specific Use Cases
  4. Lesson 3: Lists in More Detail
    1. Learning objectives
    2. 3.1 Investigating Lists
    3. 3.2 Array-based Implementation of a List
    4. 3.3 Linked Implementation of a List
    5. 3.4 Choosing a List Implementation
  5. Lesson 4: Everything in the Bucket
    1. Learning objectives
    2. 4.1 Iterating Collections
    3. 4.2 Creating a Simple Iterator
    4. 4.3 Iterating Lists
  6. Lesson 5: Comparing Things
    1. Learning objectives
    2. 5.1 What is Equality?
    3. 5.2 Naive Implementation of Equals
    4. 5.3 Equality and OO
    5. 5.4 Natural Ordering
    6. 5.5 Implementing Ordering
    7. 5.6 Other Orders
    8. 5.7 Investigating Hash Codes and Hashed Storage (Part 1)
    9. 5.8 Investigating Hash Codes and Hashed Storage (Part 2)
    10. 5.9 Rules for Implementing Hash Codes
  7. Lesson 6: Sets, Trees, and Ordering
    1. Learning objectives
    2. 6.1 Fundamental Set Behavior
    3. 6.2 Essentials of a Tree Structure
    4. 6.3 TreeSet Concepts
    5. 6.4 Coding with TreeSet
  8. Lesson 7: Improving Designs
    1. Learning objectives
    2. 7.1 Nested Implementation of Comparator
    3. 7.2 Improving Design Using a Factory
  9. Lesson 8: Maps
    1. Learning objectives
    2. 8.1 Introducing Maps
    3. 8.2 Working with Maps
  10. Lesson 9: Implementing the Iterator Pattern
    1. Learning objectives
    2. 9.1 The Iterator Pattern
    3. 9.2 Implementing Iterator
  11. Lesson 10: Functional Methods
    1. Learning objectives
    2. 10.1 Introducing Lambda Expressions
    3. 10.2 Methods of Collection Classes
    4. 10.3 Methods of Map (Part 1)
    5. 10.4 Methods of Map (Part 2)
  12. Lesson 11: More Interfaces
    1. Learning objectives
    2. 11.1 Queues
    3. 11.2 The Deque
    4. 11.3 Sorted and Navigable Structures
  13. Lesson 12: Investigating List Implementations
    1. Learning objectives
    2. 12.1 List Implementations
  14. Lesson 13: Utilities for Collections
    1. Learning objectives
    2. 13.1 The Collections Utilities Class (Part 1)
    3. 13.2 The Collections Utilities Class (Part 2)
    4. 13.3 Creating Collections with Java 9 Features
  15. Lesson 14: Creating and Combining Comparators
    1. Learning objectives
    2. 14.1 Creating Comparators with a Functional Approach
    3. 14.2 Creating Comparators with Comparator Instance Methods
    4. 14.3 Creating Comparators with Static Factories
    5. 14.4 Comparators for Ordering Map.Entry Objects
  16. Summary
    1. Modern Java Collections: Summary

Product information

  • Title: Modern Java Collections
  • Author(s): Simon Roberts
  • Release date: August 2017
  • Publisher(s): Pearson
  • ISBN: 0134663527