Skip to content
  • Sign In
  • Try Now
View all events
Java

Data Structures in Java

Published by Pearson

Intermediate content levelIntermediate

A thorough look at the collection classes in java.util

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 live event is for you because...

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

Prerequisites

  • 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.

Course Set-up

Please install the following before the class begins:

Further set-up instructions will be provided at the start of the class.

Recommended Follow-up

  • Watch: Learn Reflection with Java by Heinz Kabutz:
  • Live Online Training: Design Patterns in Java, by Heinz Kabutz: search the O'Reilly Learning Platform for an upcoming date
  • Live Online Training: Mastering Threads in Java, by Heinz Kabutz: search the O'Reilly Learning Platform for an upcoming date
  • Live Online Training: Dynamic Proxies in Java, by Heinz Kabutz: search the O'Reilly Learning Platform for an upcoming date
  • Sign up to The Java Specialists’ Newsletter for lots of tips on the latest Java developments: https://www.javaspecialists.eu/archive

Schedule

The time frames 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

Your Instructor

  • Heinz Kabutz

    Heinz Kabutz is the author of The Java Specialists' Newsletter, where he explores interesting tips and tricks from the Java Programming Language. Please join his newsletter on www.javaspecialists.eu.

    linkedinXlinksearch