Advanced Data Structures and Algorithms in Java 9
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
0 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Advanced Data Structures and Algorithms in Java 9 to your Wishlist.

Add to Wishlist

Advanced Data Structures and Algorithms in Java 9

Explore the world of advanced algorithms with Java 9
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
0 students enrolled
Created by Packt Publishing
Last updated 9/2017
English [Auto-generated]
Price: $125
30-Day Money-Back Guarantee
  • 3 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion

Training 5 or more people?

Get your team access to Udemy's top 2,000 courses anytime, anywhere.

Try Udemy for Business
What Will I Learn?
  • Handle reactive programming and its related data structures
  • Use binary search, sorting, and efficient sorting—quicksort and mergesort
  • Work with the important concept of trees and list all nodes of the tree, search trees, and balanced search trees
  • Apply advanced, general-purpose data structures, priority queue-based sorting, and random access immutable linked lists
  • Gain a better understanding of the concept of graphs, directed and undirected graphs, undirected trees, and much more
View Curriculum
  • A basic knowledge of Java is assumed.

Advanced Data Structures and Algorithms in Java 9 covers classical, functional, and reactive data structures, giving you the ability to understand computational complexity, solve problems, and write efficient code. This video is based on the Zero Bug Bounce milestone of Java 9.We start off with the basics of algorithms and data structures, helping you understand the fundamentals and measure complexity. You will also get a clear picture of reactive programming, binary searches, sorting, search trees, undirected graphs, and a whole lot more!

About the Author

Debasish Ray Chawdhuri is an established Java developer and has been in the industry for the last eight years. He has developed several systems, from CRUD applications to programming languages and big data processing systems. He provided the first implementation of an extensible business reporting language specification, and a product around it, to verify company financial data for the Government of India while he was employed at Tata Consultancy Services Ltd. In Talentica Software Pvt. Ltd., he implemented a domain-specific programming language to easily implement complex data aggregation computations that compiled to Java bytecode. Currently, he leads a team developing a new high-performance structured data storage framework to be processed by Spark. The framework is named Hungry Hippos and will be open-sourced very soon.
He has worked for Tata Consultancy Services Ltd., Oracle India Pvt. Ltd., and Talentica Software Pvt. Ltd.

Who is the target audience?
  • This video is for Java developers who want to learn about data structures and algorithms.
Compare to Other Java Algorithms Courses
Curriculum For This Course
19 Lectures
Efficient Sorting – Quicksort and Mergesort
3 Lectures 17:58

This course gives overview of the entire course.

Preview 03:30

Quick sort is a divide and conquer algorithm. It picks an element pivot and partitions the array around it. Let’s learn and work with quicksort in this video.


In quicksort, we select a pivot but in mergesort the array is divided into two halves and the halves are sorted separately.

Concepts of Tree
3 Lectures 19:00

A tree data structure is used to represent hierarchical data. In this video, we will create a tree.

Preview 10:00

We require the tree abstract data type for developing a tree implementation

The Tree Abstract Data Type

The binary tree is known for its simplicity. It has maximum two children per node. Let’s look at it in this video.
Binary Tree
More About Search – Search Trees and Hash Tables
4 Lectures 40:25

Binary search tree represents the steps of the binary search algorithm. Let’s learn more!

Preview 13:27

A binary search tree that remains balanced to some extent when insertion and deletion are carried out is called a self-balancing binary search tree. This video is one step further than the previous video.

Self-Balancing Binary Search Tree

The AVL tree makes a lot of rotations. To know when to make a rotation, we use red-black tree.

Red-Black Tree

Hash tables are faster than other data structures. A hash table keeps an array of buckets indexed by the hash code. The bucket can have many kinds of data structures, but we will use a linked list here. Let’s get started!

Hash Tables
Advanced General Purpose Data Structures
4 Lectures 30:11

A priority queue ADT is similar to a queue but the elements have a feature called priority. A heap is a balanced binary tree with some constraints. We will get to know more about them in this video.

Preview 08:58

A linked heap is an actual binary tree where every node holds references to its children. This video handles the linked heap concepts.

Linked Heap

Binomial forest is a queue of binomial trees. In this video, we will learn about binomial tress and forests.

Binomial Forest

We will use the property of priority queue and array-based heap to sort an array or list in this video.
Sorting Using a Priority Queue and In-Place Heap Sort
Concepts of Graph
3 Lectures 38:29

A graph is a collection of vertices and edges that connects vertices. In this video, we will learn about the graph.

Preview 04:19

To implement graphs, we require the graph ADT. In this video, we will look at the different types in which a graph can be represented.

The Graph ADT and Adjacency Matrix

An adjacency list is a more space-efficient representation of sparse graphs. In this video, we will work with adjacency lists

Adjacency List
Reactive Programming
2 Lectures 40:13
A producer-consumer model is a design that divides processing into small components that sends messages to other components. It provides an abstraction to implement an application optimized to utilize all the resources easily.
Preview 28:16

Most reactive programming frameworks provide functional APIs for reactive programming, which makes it even easier to work with. In this video, we will build a functional reactive API and solve a problem with it.

Functional Way of Reactive Programming
About the Instructor
Packt Publishing
3.9 Average rating
8,274 Reviews
59,267 Students
687 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.