O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 informit.com/title/9780134663517

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 http://www.informit.com/livelessons.

Table of Contents

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