Data Structures in Java Live Class 2019-02-21

A thorough look at the collection classes in java.util.** in Java

Oh no, you missed this live class! But good news, we are running another one on the 26th March 2019.

This is a live virtual class running on February 21st, 2019 from 07:00-11:00 PST, 10:00-14:00 EST, 15:00-19:00 UTC

Anyone registered will get access to the recording.

Java programmers typically use only very few collection classes for all of their work. Often they chose inappropriate ones. In this course, we will look at what each collection costs and when you should use which one. Some of the questions will we answer include: Which is the best Collection to use in Java? When do you need to employ ConcurrentSkipListSet? What is the computational time complexity of WeakHashMap?

What you'll learn-and how you can apply it

  • Java has an overwhelming number of interfaces and classes in the java.util.** packages. In this course you will learn what they are and when to use which. Is ArrayList better than LinkedList? What is the difference in space complexity between the two classes?
  • Choosing the correct collection can make our code more succinct. For example, the new List.of() syntax in Java 9 is better at creating immutable lists.
  • By looking at hashing closely, we can learn how to write hashing functions that produce a 3x performance improvement for HashMap and ConcurrentHashMap.
  • We learn when to use which concurrent classes and which to avoid.

This training course is for you because...

  • Junior and intermediate Java programmers wanting to understand collections better.
  • Advanced programmers who want to acquire additional skills.


  • Attendees should be familiar with basic Java code, but a CS degree is not assumed
  • Should know at least Java 6. We are covering all relevant collection classes up until Java 11. Knowledge of streams and lambdas not necessary.

Recommended Follow-up

Sign up to The Java Specialists’ Newsletter for lots of tips on the latest Java developments:


The timeframes are only estimates and may vary according to how the class is progressing

Section 1 - Introduction to Collections in Java (10 minutes)

  • Computational Time and Space Complexity
  • Arrays

Section 1 Quiz (5 minutes)

Section 2 – Lists (30 minutes)

  • Lists
  • ArrayList
  • Iteration
  • CopyOnWriteArrayList
  • LinkedList

Section 2 Quiz (5 minutes)

Section 3 – Sorting (25 minutes)

  • Sorting lists

Section 3 Quiz (5 minutes)

Section 4 – Sets (15 minutes)

  • Sets
  • TreeSet
  • ConcurrentSkipListSet
  • CopyOnWriteArraySet

Section 4 Quiz (5 minutes)

Section 5 – Hashing (15 minutes)

  • Hashing
  • HashSet
  • ConcurrentHashMap.newKeySet()

Section 5 Quiz (5 minutes)

Section 6 – Maps (45 minutes)

  • Maps
  • HashMap
  • ConcurrentHashMap
  • TreeMap
  • ConcurrentSkipListMap
  • LinkedHashMap and LinkedHashSet
  • Highly Specialized Collections: EnumSet, EnumMap, IdentityHashMap, Properties, WeakHashMap

Section 6 Quiz (5 minutes)

Section 7 - Queues and Deques (25 minutes)

  • Queues and Deques
  • ConcurrentLinkedQueue and ConcurrentLinkedDeque
  • ArrayDeque
  • BlockingQueues
  • LinkedBlockingQueue and LinkedBlockingDeque
  • ArrayBlockingQueue
  • Highly specialized queues: DelayQueue, SynchronousQueue, LinkedTransferQueue
  • PriorityQueue and PriorityBlockingQueue

Section 7 Quiz (5 minutes)

Section 8 - Collection Facades (15 minutes)

  • java.util.Collections
  • java.util.Arrays

Section 8 Quiz (5 minutes)

Section 9 – Wrap-up (15 minutes)

  • Further questions

"I enjoyed the data structures course, appreciate it not being a rehash of the self study course :)"

- Sudheendra Ayalasomayajula

"For me it was a very interesting revisit to data structures. It is very educational to follow along and hear your comments as you code. Interesting to learn about alternate syntaxes etc , not always obvious to me :-), but that's the objective of the webinars to show new or advanced ways of coding."

- Ola Andersson

Your Instructor

Dr Heinz M. Kabutz
Dr Heinz M. Kabutz

Heinz Kabutz is the author of The Java Specialists’ Newsletter, a publication enjoyed by tens of thousands of Java experts in over 145 countries. His book “Dynamic Proxies (in German)” was #1 Bestseller on in Fachbücher für Informatik for about five minutes until Amazon fixed their algorithm. Thanks to a supportive mother, he has now sold 5 copies.

Heinz’s Java Specialists’ newsletter is filled with amusing anecdotes of life on the Island of Crete. He is a popular speaker at all the best Java conferences around the world, and also at some of the worst. He teaches Java courses in classrooms around the world, where his prime objective is to make absolutely sure that none of his students fall asleep. He is not always successful.

Course Curriculum

  Data Structures in Java Live Class
Available in days
days after you enroll

Courses Included with Purchase

Build Your Own CircularArrayList In Under 34 Minutes
See how we can create our own CircularArrayList by reusing the Collection framework abstract base classes.
Dr Heinz M. Kabutz
Data Structures in Java
A thorough look at the collection classes in java.util.** in Java
Dr Heinz M. Kabutz

Original Price: $267

Frequently Asked Questions

How long do I have access to a fully paid course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own. Furthermore, if we move to another platform, we will offer you a free transfer of your account for all the courses that you have purchased.
How many times can I cancel and rejoin a subscription course?
To prevent abuse, we limit the number of times that you can cancel and rejoin our subscription based courses to three times.
What is the difference between a subscription, paying in installments and an outright purchase?
With a subscription, you never own the rights to the material. If your card is declined or you cancel your subscription, you lose access to the course. The money you have paid so far is lost. Paying in installments is a bit better. You pay for 5 or 10 months and then once you have completed your installments you have lifetime access to the course. The safest is an outright purchase, where you pay the entire course in one amount. There is no risk of losing access.
Can I pay via PayPal?
Yes, you can for outright purchases, but not for recurring payments such as paying by installments or subscriptions.
Can I get an EU VAT Invoice?
Absolutely. First off, be sure to enter the VAT number in the appropriate field during the payment process. Then contact us for an EU VAT Invoice. Please tell us the receipt number for which you need the invoice.
May I share my login details with my colleagues?
Unfortunately not. The terms of usage are for a single license. Teachable tracks your progress through the curriculum, so you won't know how much you have watched. We offer a 30% discount on 50 licenses or more by one company. Please contact us for bulk licensing.
May we use the course for running in-house courses?
You may, as long as each of the students in the class has a valid license for that course. For example, some companies run lunch time Design Patterns study groups using our material. This is an effective way to learn. Please contact us for bulk licensing.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund and deregister you from the course.
When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish. We do recommend putting time aside and setting goals to complete the course.
Can I watch the course offline during my commute?
Teachable have an iOS app that lets you watch offline. Android is not supported unfortunately.

This course is closed for enrollment.